tag:blogger.com,1999:blog-4623278671508370136.post4285043720735437320..comments2023-08-01T13:39:53.991+02:00Comments on EXCEL FORO: Un blog de Excel: VBA: Cómo convertir nuestras fórmulas en valores.Excelforo - Ismael Romerohttp://www.blogger.com/profile/17680553534095355222noreply@blogger.comBlogger59125tag:blogger.com,1999:blog-4623278671508370136.post-42043574654231780782019-06-24T09:21:05.285+02:002019-06-24T09:21:05.285+02:00En el detalle reside la diferencia...
Entre las lí...En el detalle reside la diferencia...<br />Entre las líneas que indicaste tenías<br />b = Worksheets("Hoja1").Range("AB7").Value<br />donde cargas en la variable b el valor de AB7<br />si no está cargándolo es por que el resto del código está evitando que lea esa línea...<br />sldsExcelforo - Ismael Romerohttps://www.blogger.com/profile/17680553534095355222noreply@blogger.comtag:blogger.com,1999:blog-4623278671508370136.post-64047496084998672552019-06-23T21:09:20.495+02:002019-06-23T21:09:20.495+02:00No es todo el código, solo te copie lo de interés,...No es todo el código, solo te copie lo de interés, no me sirve anotarlo de la forma que me dices, el valor de la celda AB7 no se esta cargando a ninguna variable. No importa, gracias por tu tiempo, veré otra forma de hacerlo. SaludosClohttps://www.blogger.com/profile/13070243544449461603noreply@blogger.comtag:blogger.com,1999:blog-4623278671508370136.post-69279910083246782012019-06-23T21:07:50.592+02:002019-06-23T21:07:50.592+02:00Este comentario ha sido eliminado por el autor.Clohttps://www.blogger.com/profile/13070243544449461603noreply@blogger.comtag:blogger.com,1999:blog-4623278671508370136.post-8481294968058776122019-06-23T10:25:06.901+02:002019-06-23T10:25:06.901+02:00Hola Claudia,
¿ese es todo tu código?... veo mucho...Hola Claudia,<br />¿ese es todo tu código?... veo muchos sin sentido<br />un bucle FOR si NEXT<br />un SELECT CASE sin END SELECT <br />una matriz x sin definir<br />un 'pointer' no asociado a k<br />un IF sin END IF<br />etc<br />???<br /><br />Para recuperar el valor de la celda es suficiente como lo has hecho<br />b = Worksheets("Hoja1").Range("AB7").Value<br />así cargas a la variable b el valor de AB7<br /><br />Si no ves lo que esperas es por el resto de la programación extraña...<br /><br />Un saludoExcelforo - Ismael Romerohttps://www.blogger.com/profile/17680553534095355222noreply@blogger.comtag:blogger.com,1999:blog-4623278671508370136.post-35103447888656706022019-06-22T21:16:41.413+02:002019-06-22T21:16:41.413+02:00Hola, necesito que la macro lea el valor de la cel...Hola, necesito que la macro lea el valor de la celda no la formula. Mira mi código lo tengo escrito así<br /><br />For k = 1 To 1000<br /> Select Case pointer<br /> Case 1: a = Worksheets("Hoja1").Range("$AB$7").Value<br /> x(2) = x(1) + step<br /> b = Worksheets("Hoja1").Range("AB7").Value<br /> If b < a Then<br /> j = 2<br /> pointer = 2<br /><br />Para ir variando y probar que tengo mal puso el signo "$" pero tampoco me resulto. Como dato tengo declarada las variables como "string" "variant" o "double" y con ninguno me leyó el valor de la celda.<br /><br />La celda en cuestión corresponde a la suma de otras celdas.<br /><br />Celda AB7 =G7+L7+Q7+V7+AA7<br /><br />Y cada una de las otras celdas corresponde a la suma de datos de su respectiva columna.<br /><br />El asunto es que cuando corro la depuración "a" y "b" quedan como valores vacios (y cuando la declaro como variant salen ""). Pero cuando coloco el valor como numero si lo lee o incluso lee el texto. Para mi codigo en general yo necesito que excel lea el valor porque va ir variando, ese es la gracia.<br /><br />En fin, no se si haya otra forma de leer el valor de la celda. Sino tendré que ver otra forma de escribir mi codigo desde 0.<br /><br />Gracias por tu tiempo!!!!Clohttps://www.blogger.com/profile/13070243544449461603noreply@blogger.comtag:blogger.com,1999:blog-4623278671508370136.post-45441456405577897822019-06-22T10:34:05.660+02:002019-06-22T10:34:05.660+02:00Hola Claudia,
¿podrías indicar tu código y qué hay...Hola Claudia,<br />¿podrías indicar tu código y qué hay escrito (la fórmula) en esa celda?<br /><br />Entiendo quieres que la macro te devuelva la fórmula y no el valor resultado??<br /><br />SldsExcelforo - Ismael Romerohttps://www.blogger.com/profile/17680553534095355222noreply@blogger.comtag:blogger.com,1999:blog-4623278671508370136.post-79874512508060554912019-06-21T23:24:26.860+02:002019-06-21T23:24:26.860+02:00Que tal Ismael?, mi nombre es Claudia y quisiera c...Que tal Ismael?, mi nombre es Claudia y quisiera consultarte acerca de un código en VBA. Tengo que hacer un código y donde necesito leer una celda de mi excel, la cual corresponde a una formula y resulta que VBA no la esta leyendo, he probado de todo, no tengo mal anotada la forma porque cuando escribo algo o coloco un numero en la celda, VBA lo lee bien, pero cuando coloco la formula no pasa nada, no se si explico bien mi problema.<br /><br />te agradecería información o/y orientación al respecto.<br />Gracias!!Clohttps://www.blogger.com/profile/13070243544449461603noreply@blogger.comtag:blogger.com,1999:blog-4623278671508370136.post-11090230621656189362019-06-06T20:49:42.259+02:002019-06-06T20:49:42.259+02:00Hola,
supongo que en la celda P17 tienes esa fórmu...Hola,<br />supongo que en la celda P17 tienes esa fórmula que comentas:<br />=+si(P4<>p5;h4+h5+h6;h5+h6)<br />y en tu macro copias el resultado que hubiera en ese momento y lo pegas como valores... asi que devolverá siempre el mismo valor mientras las condiciones de la prueba lógica (P4<>P5) no cambien...<br /><br />SldsExcelforo - Ismael Romerohttps://www.blogger.com/profile/17680553534095355222noreply@blogger.comtag:blogger.com,1999:blog-4623278671508370136.post-21755019961546789982019-06-06T16:34:46.735+02:002019-06-06T16:34:46.735+02:00Hola Ismael, mi nombre es Esteban, vi este comenta...Hola Ismael, mi nombre es Esteban, vi este comentario y necesito hacerte una consulta, necesito copiar el resultado de una formula en otra hoja, es algo asi, =+si(P4<>p5;h4+h5+h6;h5+h6) el resultado seria ej para verdadero 100 y para falso 20, pero cuando ejecuto la macro me pone siempre 20, no se que puedo estar haciendo mal, estoy usando el código <br />Sheets("Hoja2").Select<br /> Range("I3").Select<br /> Application.CutCopyMode = False<br /> Selection.Copy<br /> Sheets("Hoja4").Select<br /> Range("P17").Select<br /> Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _<br /> :=False, Transpose:=False<br /> Sheets("Hoja2").Select<br /> Application.CutCopyMode = False<br /> <br />desde ya muchas gracias y perdon si me extendíEstebanhttps://www.blogger.com/profile/11553527307646782593noreply@blogger.comtag:blogger.com,1999:blog-4623278671508370136.post-29670288390714435202019-05-24T18:41:15.151+02:002019-05-24T18:41:15.151+02:00Este comentario ha sido eliminado por el autor.Visnuhttps://www.blogger.com/profile/02130618863607332112noreply@blogger.comtag:blogger.com,1999:blog-4623278671508370136.post-22517729690134523802019-05-24T17:49:31.369+02:002019-05-24T17:49:31.369+02:00Hola,
echa un vistazo a estas formas de copiar/peg...Hola,<br />echa un vistazo a estas formas de copiar/pegar datos con macros<br /><a href="https://excelforo.blogspot.com/2011/02/vba-formas-de-copiar-rangos-o-celdas.html" rel="nofollow">https://excelforo.blogspot.com/2011/02/vba-formas-de-copiar-rangos-o-celdas.html</a><br /><br />En tu caso igual te resulta más cómodo usar.<br />yyyy.value = xxxx.value<br /><br />Un saludoExcelforo - Ismael Romerohttps://www.blogger.com/profile/17680553534095355222noreply@blogger.comtag:blogger.com,1999:blog-4623278671508370136.post-69082806140205362992019-05-24T16:41:21.562+02:002019-05-24T16:41:21.562+02:00Hola Ismael!, tengo una duda para implementar una ...Hola Ismael!, tengo una duda para implementar una macro, debo de copiar un rango de filas de un libro e insertarlas en un libro nuevo. El inconveniente radica en que los datos contenidos en las filas del libro de origen contienen fórmulas y solo debo de llevar al nuevo libro valores y formatos.<br />Las filas las estoy insertando con el comando: Selection.Insert Shift:=x1Down y posteriormente hacía un Selection Copy sobre las filas insertadas en el nuevo libro y finalmente un PasteSpecial xlPasteValues sobre las filas pero no me estaría funcionando. Gracias!Visnuhttps://www.blogger.com/profile/02130618863607332112noreply@blogger.comtag:blogger.com,1999:blog-4623278671508370136.post-86159542418627938162019-05-15T09:22:40.980+02:002019-05-15T09:22:40.980+02:00Hola DanielG,
emplea el evento de libro _BeforeSav...Hola DanielG,<br />emplea el evento de libro _BeforeSave y aplica la macro del ejemplo del post para convertir el rango deseado a valores...<br /><br />SaludosExcelforo - Ismael Romerohttps://www.blogger.com/profile/17680553534095355222noreply@blogger.comtag:blogger.com,1999:blog-4623278671508370136.post-28637715667202405762019-05-14T21:49:58.762+02:002019-05-14T21:49:58.762+02:00Buenas tardes!! Qué tal... Tengo una duda:
Si de...Buenas tardes!! Qué tal... Tengo una duda: <br /><br />Si deseo que solamente las formulas contenidas en las celdas de un cierto rango en específico (aquellas celdas en las que la fórmula ya arrojó un valor) se conviertan en valores fijos automáticamente al momento de GUARDAR el Libro, qué MACRO podría usar?...<br /><br />Me interesa que el usuario no tenga que preocuparse de convertir fórmulas a valores cada vez que utilice el Libro, y que los valores calculados por la fórmulas no se vean afectados retroactivamente cuando la base de datos se modifique.<br /><br />Tengo mucho tiempo intentado lograrlo!<br />Gracias de antemano...DanielGhttps://www.blogger.com/profile/10822294298891193157noreply@blogger.comtag:blogger.com,1999:blog-4623278671508370136.post-25602970074020808712019-02-28T21:27:05.913+01:002019-02-28T21:27:05.913+01:00Ya quedó, Muchas gracias.Ya quedó, Muchas gracias.Anonymoushttps://www.blogger.com/profile/15532253571993203398noreply@blogger.comtag:blogger.com,1999:blog-4623278671508370136.post-77954922323177553352019-02-28T17:57:27.242+01:002019-02-28T17:57:27.242+01:00Hola....
raro ?
añade a tu búsqueda las opción de ...Hola....<br />raro ?<br />añade a tu búsqueda las opción de buscar como valores:<br />LookIn:=xlValues,<br />así:<br />Set b = r.Find(h1.Range("H4"), LookIn:=xlValues, LookAt:=xlWhole)<br /><br />asegúrate de qué estas buscando en H4<br /><br />SldsExcelforo - Ismael Romerohttps://www.blogger.com/profile/17680553534095355222noreply@blogger.comtag:blogger.com,1999:blog-4623278671508370136.post-9735540160208242682019-02-27T19:29:45.211+01:002019-02-27T19:29:45.211+01:00Que tal Ismael.
Pude probar lo que me recomiendas...Que tal Ismael.<br /><br />Pude probar lo que me recomiendas, sin embargo el código sigue sin poder encontrar el valor buscado en la columna A. Mi suposición es que no puede comparar el valor debido a que la columna A está armada con la formula =Fila() para asignarle un valor.Anonymoushttps://www.blogger.com/profile/15532253571993203398noreply@blogger.comtag:blogger.com,1999:blog-4623278671508370136.post-37192081228223750702019-02-27T18:29:48.313+01:002019-02-27T18:29:48.313+01:00Hola William
prueba cambiando
Set r = h2.Columns(&...Hola William<br />prueba cambiando<br />Set r = h2.Columns("A") 'Aquí tengo el problema<br />por <br /><b>Set r = h2.Columns(1) 'Aquí tengo el problema</b><br />o por<br /><b>Set r = h2.Columns("A:A") 'Aquí tengo el problema</b><br /><br />SaludosExcelforo - Ismael Romerohttps://www.blogger.com/profile/17680553534095355222noreply@blogger.comtag:blogger.com,1999:blog-4623278671508370136.post-90736321076803831262019-02-27T16:24:16.353+01:002019-02-27T16:24:16.353+01:00Buen día.
Tengo el siguiente problema: al momento...Buen día.<br /><br />Tengo el siguiente problema: al momento de ejecutar la macro, debe buscarme el valor en la columna A que coincida con la celda h4 de la primera hoja ("h1"), sin embargo no lo hace porque la columna A no tiene valores como tal, sino la fórmula =Fila() para que me devuelva el valor de la fila. Como puedo hacer que la búsqueda del valor de celda H4 en la columna A sea exitosa?<br /><br />Sub Reemplazar()<br /> <br />Set h1 = Sheets("reporte")<br />Set h2 = Sheets("database")<br /> <br />cf = MsgBox("Desea reemplazar el registro?", vbInformation + vbYesNo, "AVISO")<br />If cf = vbYes Then<br /> <br /><br />If h1.[H4] = "" Then<br />MsgBox "Colocar número de FOLIO"<br />Exit Sub<br />End If<br /><br />Set r = h2.Columns("A") 'Aquí tengo el problema<br />Set b = r.Find(h1.Range("H4"), LookAt:=xlWhole, SearchFormat:=False)<br /> <br />If Not b Is Nothing Then<br /> <br /> h2.Cells(b.Row, "AA") = h1.[b52]<br /> <br /> MsgBox "Se ha reemplazado con éxito", vbInformation<br />Else<br /> MsgBox "El código no existe", vbInformation<br /> Exit Sub<br />End If<br /> <br /> Limpiar<br /> <br />End If<br />End SubAnonymoushttps://www.blogger.com/profile/15532253571993203398noreply@blogger.comtag:blogger.com,1999:blog-4623278671508370136.post-43788711349122574332018-12-04T19:38:20.495+01:002018-12-04T19:38:20.495+01:00faltaría indicar el rango correcto
Hoja9.Range(&qu...faltaría indicar el rango correcto<br />Hoja9.Range("G2:G100")<br /><br />G2:G no es un rango válido<br /><br />;-)Excelforo - Ismael Romerohttps://www.blogger.com/profile/17680553534095355222noreply@blogger.comtag:blogger.com,1999:blog-4623278671508370136.post-48798532004424653622018-12-04T13:05:37.760+01:002018-12-04T13:05:37.760+01:00Hola Ismael, aun me arroja el error 104 por la sig...Hola Ismael, aun me arroja el error 104 por la siguiente linea : For Each rngcell In Hoja9.Range("G2:G") .<br /><br />SaludosAnonymoushttps://www.blogger.com/profile/11529243271607921214noreply@blogger.comtag:blogger.com,1999:blog-4623278671508370136.post-11207621206070776292018-12-03T16:48:40.039+01:002018-12-03T16:48:40.039+01:00Hola Paula,
tendrías que condicionar el nombre de ...Hola Paula,<br />tendrías que condicionar el nombre de la hoja<br />Sub ConvierteFormulaenValor()<br />for each sh in worksheets<br />if sh.name<>"Hoja a excluir" then<br /> For Each rngcell In Hoja9.Range("G2:G")<br /><br /> If rngcell.HasFormula Then<br /> rngcell.Value = rngcell.Value<br /> End If<br /> Next rngcell<br />end if<br />next sh<br />End Sub<br /><br />SaludosExcelforo - Ismael Romerohttps://www.blogger.com/profile/17680553534095355222noreply@blogger.comtag:blogger.com,1999:blog-4623278671508370136.post-16804054318120183492018-12-03T15:52:09.059+01:002018-12-03T15:52:09.059+01:00Hola Ismael!, primero que nada muchas gracias por ...Hola Ismael!, primero que nada muchas gracias por el tutorial, tengo una duda sobre el rango de la macro cuando uno tiene varias hojas y requiere que en una en especifico no se muestre la formula, me arroja el error 104 ( anterior a esto tengo otra macro que hace los cálculos):<br />Sub ConvierteFormulaenValor()<br />For Each rngcell In Hoja9.Range("G2:G")<br />If rngcell.HasFormula Then<br /> rngcell.Value = rngcell.Value<br /> End If<br /> Next rngcell<br /> <br />End SubAnonymoushttps://www.blogger.com/profile/11529243271607921214noreply@blogger.comtag:blogger.com,1999:blog-4623278671508370136.post-52086816284973132392018-11-29T19:19:22.441+01:002018-11-29T19:19:22.441+01:00Hola
envíame si quieres el fichero a
excelforo@gma...Hola<br />envíame si quieres el fichero a<br />excelforo@gmail.com<br />SldsExcelforo - Ismael Romerohttps://www.blogger.com/profile/17680553534095355222noreply@blogger.comtag:blogger.com,1999:blog-4623278671508370136.post-15939765846774020772018-11-29T00:26:31.223+01:002018-11-29T00:26:31.223+01:00intente ingresar el codigo asi pero me genera erro...intente ingresar el codigo asi pero me genera error <br />Private Sub GeneraReporte(sRuta As String, sRango_Ini As String, sRango_Fin As String)<br /> 'se crea variable se hace referencia al libro del cual donde se va hagarrar la informacion<br /> Dim LibroDatos As Workbook<br /> Dim n As Integer<br /> Dim FilePath As String<br /> <br /> FilePath = Dir(sRuta)<br /> On Error GoTo 0<br /> If FilePath = "" Then<br /> MsgBox "El archivo " & sRuta & " no existe", vbInformation, "File"<br /> Else<br /> 'se abre el archivo donde contiene la informacion<br /> Set LibroDatos = Workbooks.Open(sRuta)<br /> LibroDatos.Sheets(14).Range(sRango_Ini).Copy<br /> n = Application.WorksheetFunction.CountA(LibroDatos.Sheets(14).Range(sRango_Ini))<br /> Application.DisplayAlerts = False<br /> LibroDatos.Close Savechanges:=False<br /> If n <= 0 Then<br /> MsgBox "El archivo: " & sRuta & " no contiene datos"<br /> Else<br /> ActiveSheet.Range(sRango_Fin).PasteSpecial Paste:=xlPasteValues<br /> iLetra = iLetra + 2 ' se debe de incrementar iLetra para obtener la letra que corresponda<br /> End If<br /> End If<br />End Sub<br /><br /><br /><br />si le quito esta parte de codigo y gala los datos normal.Alehttps://www.blogger.com/profile/17901407465251797163noreply@blogger.com