Sergio algo que pocos saben es que puedes comprobar si hubo un error cuando usas Resume Next. Ejemplo: Dim Msg On Error Resume Next If Err Then Msg = "Hubo un error" MsgBox Msg, , "Error", Else Msg = "No hubo error" MsgBox Msg, , "Error", End If On Error GoTo 0
Hola Sergio, muy buenos días. Por supuesto que nos gusta el ´vídeo y por supuesto que tienes tu ¡ Manito Arriba !. Un millón de gracias por tus aportes, todo va muy bien. Un abrazo, saludos.
Gracias una vez mas por tal magistral explicacion. Consulta haremos algun proyecto al final del curso para poner en practica todo lo aprendido, es tan solo una consulta.
En el segundo caso, no sabía que había que cerrar con "On Error GoTo 0", de hecho no lo tengo puesto en mis archivos. Voy a ponerlo jejeje. Gracias Sergio.
Hola, Sergio. Antes de nada, muchas gracias por este curso. Me parece un admirable gesto por tu parte. Tengo una duda que no tiene que ver con el video en sí, pero espero me puedas echar una mano. Si aplico un Autofilter en una macro, ¿cómo puedo hacer para desplazarme solo por las celdas visibles del rango filtrado? Basado en lo que llevamos de curso, me puedo desplazar con Offset pero, en este caso del rango filtrado, se mueve tanto en lo filtrado como en lo oculto. Gracias de antemano por la ayuda.
Hola Sergio, excelente curso, muchísimas gracias por compartir tus conocimientos con los que queremos aprender. Me gustaría hacerte una sugerencia a propósito de este tutorial 25, podrías hacer un tutorial para saber el significado de los errores que lanza VBA cuando cometemos errores, ya que la descripción y el "lenguaje" que da el cuadro de diálogo al menos para los novatos es algo que no entendemos. Muchas gracias!!!!
Hola amigo Sergio, un gusto saludarte. Me estoy iniciando en las macros de VBA y lo hago a través de tu curso. Quería saber si en un ciclo For Next, podemos hacer que no se ejecute la operación para un valor determinado y el ciclo continúe. No es el caso del video, que hacemos que salte una operación porque se genera un error. Es el caso, por ejemplo simple de imprimir los números del 1 al 10, pero cuando la variable sea igual a 5, no lo imprima, sino que salte al siguiente y continúe con el resto de los números. Probé con la sentencia CONTINUE, pero da error. Gracias amigo Sergio
Buen día Sergio.- Acudo a ti con el fin de solicitar tu asistencia para la resolución de lo siguiente: Estoy preparando una hoja de Excel en la que utilizo varias filas, que están ocultas, para efectuar los cálculos necesarios, por ejemplo desde la fila 10 hasta la 20, pero al momento de la visualización de las mismas quiero que se efectué desde la fila 10 hasta la fila cuyo número introduzco en una celda ubicada, por ejemplo, en la fila 5. Por favor, me puede indicar las instrucciones que debe incluir una macro para que realice la visualización de las filas en cuestión. Mil Gracias por tu amable atención Atte Tomas Hdez
Sergio, he visto varios ejemplos en algunos videos de macros que usan "On Error Resume Next" pero nunca había visto que cerraran con "On Error GoTo 0". Este cierre es siempre obligatorio? Gracias por esta nueva entrega Sergio, muy útil.
Obligatoria no, nunca está de más hacer las cosas respetando las buenas prácticas. Hay ocasiones donde necesitamos implementar varios controladores de errores, ahí sí es obligatorio restablecer con Error goto 0
Hola Sergio muy buenos tus videos, soy un apasionado por las macros, como tema abordar en estos tópicos me gustaría ver un caso practico de Paso por referencia (ByRef) o por valor (ByVal). Saludos...
Sergio, muchas gracias por compartir tus enseñanzas, son muy aleccionadoras, me ayudas un montón! gracias mil....! Te pido por favor que me apoyes en un proyecto, y te explico... resulta que tengo mas de tres mil archivos muy simples de excel de solo una hoja y muy escasos datos que consisten en datos de la persona en las cinco primeras filas, y luego entre 5 a 25 proximas lineas solo datos simples todos los archovos cuentan con un mismo formato y numero de columnas fijas no mas de 10, pero el archivo se graba con nombre por "default" ejemplo: "archivo1"...etc como puedo hacer un macro que los pueda remombrarlos a cada archivo con el dato que se encuenta en la celda "C1" de esos archivos? o que los copie con otro nombre (dato extraido de la celda "C1" en otro directorio? Desde ya te agradezco por tu valiosa ayuda
Hola me gustan tus videos deacros estoy aprendiendo mucho, Quiero hacer un dashboard y he dado con un archivo excel que esta hecho por macros y quería repiclarlo pero no se leer los módulos de las macros. ¿Me ayudarias? Te puedo pasar el archivo ? Un saludo y gracias por tus cursos
Holaaa Gracias. Tengo una duda. Segun entendi son excluyentes las opciones de manejar los errores con la explicacion con la opcion que continue la macro. Espero hacerme entender. Si uso el manejador de errores que hace ke la macro continue, asi encuentre un error, no puedo usar la que informa la clase de error que se produjo. Entendi bien?. O se pueden usar las dos? Es decir, ke me muestre la explicacion del error y ke continue ejecutandose la macro.
Hola Sergio, me queda la duda, ¿Por qué la macro ignora la hoja EXCELeINFO? espero puedas contestar mi pregunta. Un saludo y excelente contenido. Gracias.
Lo hice así, porque en ocasiones tenemos una hoja de portada y no queremos que la macro la modifique. Dejo esa opción por si alguien tenga una hoja de esas y vean cómo hacerlo.
@@SergioAlejandroCampos Sergio yo quiero unificar archivos .txt guardados cada una en diferentes carpetas. y que se unan en un archivo nuevo txt. Que codigo nos puedes enseñar.?? Gracias
4 года назад
Algo que yo me he dado cuenta es que hay un punto donde si utilizas un On Error tras otro, llega un momento en que no detecta el error y lo pasa desapercibido.
Buenos dias Profesor Sergio, excelente explicación pero me quedó una duda Porque no salió error en la 1era hoja (de nombre ExceleInfo) si el contador la había considerado Muchas gracias
Fíjate que es porque no cumple con las condiciones para entrar en el loop. El loop toma las hojas que se llaman "Hoja" & i. En el caso de Exceleinfo no tiene el prefijo "Hoja". Saludos
Hola Quiero que la hoja se mantenga protegida y por tanto al inicio de la macro la desprotejo para que funcione y al final la protejo nuevamente antes del end sub pero cuando hay error a mitad de la macro y se finaliza, la hoja queda desprotegida, hay alguna manera de que en caso de error se proteja la hoja antes de finalizar
Buenas Sergio, tengo un problema con un excel con macros que estoy realizando, en el realizo tareas de altas, modificación y bajas de clientes mediante formularios y el caso es que me sale a veces un error que no entiendo. No me sale siempre en el alta o en la modificación o en la eliminación, sino que es aleatorio, puedo dar 10 altas perfectamente y en la 11 me falla. El error que me sale dice lo siguiente: SE HA PRODUCIDO EL ERROR '-2147417848 (80010108)' EN TIEMPO DE EJECUCIÓN: ERROR EN EL MÉTODO 'VALUE' DE OBJETO 'RANGE' y me señala la fila With Sheets("Clientes") .Cells(filaInsercion, 1).Value = Me.TXT_CLAVE_CLIENTE.Value ¿Podrías ayudarme? No consigo solucionarlo de ninguna manera y mi excel es bastante complejo como para ponerme a rehacerlo o algo así. Mil gracias
Este manejador de errores es para un programador con mucha experiencia que ya conozca todos los posibles y motivos errores al ejecutar una macro. y los sepa definir como comentario en el codigo.
Sub CommandButton1_Click() Dim Nombre As Variant Dim NombreBuscado As Variant Dim Rango As Range On Error GoTo etiqueta Set Rango = Sheets("Hoja1").Range("A1").CurrentRegion NombreBuscado = Me.TextBox1.Value If IsNumeric(NombreBuscado) Then NombreBuscado = VBA.CDbl(NombreBuscado) ElseIf IsDate(NombreBuscado) Then NombreBuscado = VBA.CLng(VBA.CDate(NombreBuscado)) End If Nombre = Application.WorksheetFunction.VLookup(NombreBuscado, Rango, 2, 0) With Me .TextBox2.Value = Nombre .LblMensaje.Visible = False .TextBox1.SetFocus End With Exit Sub etiqueta: If Err.Number = 1004 Then With Me .LblMensaje.Caption = "El valor '" & NombreBuscado & "' no fué encontrad." .LblMensaje.Visible = True .TextBox2.Value = "" .TextBox1.SetFocus End With Else MsgBox "Ha ocurrido un error: " & Err.Description, vbExclamation, "elberto Suarez C" End If End Sub Private Sub UserForm_Initialize() With Me .TextBox2.Enabled = False .LblMensaje.Visible = False .CommandButton1.Default = True End With End Sub esta macro la estoy intendo hacer pero aun no me detecta cuando hay nun error, en donde estare equivicado, no salta a la parte del manejador de error, por favor alguien me puede ayudar
Sencillamente el mejor curso de macros OpenSource de habla hispana de todo internet.
Gracias por regalarme un día MÁS de aprendizaje. GRACIAS ⚽🎁🏃🛀🛏🚀📚💃
Sergio algo que pocos saben es que puedes comprobar si hubo un error cuando usas Resume Next.
Ejemplo:
Dim Msg
On Error Resume Next
If Err Then
Msg = "Hubo un error"
MsgBox Msg, , "Error",
Else
Msg = "No hubo error"
MsgBox Msg, , "Error",
End If
On Error GoTo 0
Hola Sergio me ayudo mucho los bucles ahora e ahorrado horas de trabajo en depurar información de datos en mi trabajo
Hola Sergio, muy buenos días. Por supuesto que nos gusta el ´vídeo y por supuesto que tienes tu ¡ Manito Arriba !. Un millón de gracias por tus aportes, todo va muy bien. Un abrazo, saludos.
Muchas gracias Sergio por tu aportación, es de grandisima utilidad.
Lo máximo!!!! era lo que necesitaba para una macro que estoy ejecutando en mi trabajo...
Muy bien explicado la parte de control de errores. Gracias Sergio
Mejor explicado, imposible!!!
Excelente Sergio,
Sí, es muy importante para mi proceso de aprendizaje, para poder aplicarlo en mi trabajo
Por fin alguien que explica con claridad el tema de los errores. Cada vez me gusta más la programación....
Gracias Sergio!
Esto es mejor que Coursera y Udemy
Gracias!!
Gracias una vez mas por tal magistral explicacion. Consulta haremos algun proyecto al final del curso para poner en practica todo lo aprendido, es tan solo una consulta.
SOS un geniaso hermano
Excelente video!
Sergio buenas noches, gracias por esta nueva entrega.
Gracias por el contenido
Me encanta el curso súper bien explicado
¡Gracias!
En el segundo caso, no sabía que había que cerrar con "On Error GoTo 0", de hecho no lo tengo puesto en mis archivos. Voy a ponerlo jejeje. Gracias Sergio.
excelente entrega Sergio muy bna explicación gracias ,sal2 y pulgar arriba.
Muy buenos los videos
Muchas gracias por los videos, espero puedas seguir transmitiendonos tus conocimientos, saludos desde Mexico.
Que maravilla es aprender de tan ilustre profesor. Dios Te Bendiga Sergio!!!!!!. Muchísimas gracias por enseñar con ese entusiasmo...
Muy Util!!!!
Gracias Sergio.
Hola, Sergio.
Antes de nada, muchas gracias por este curso. Me parece un admirable gesto por tu parte.
Tengo una duda que no tiene que ver con el video en sí, pero espero me puedas echar una mano.
Si aplico un Autofilter en una macro, ¿cómo puedo hacer para desplazarme solo por las celdas visibles del rango filtrado?
Basado en lo que llevamos de curso, me puedo desplazar con Offset pero, en este caso del rango filtrado, se mueve tanto en lo filtrado como en lo oculto.
Gracias de antemano por la ayuda.
Usa SpecialCells(xlCellTypeVisible) y con conviertelo rango con una variable y si quieres recorrerlo celda por celda lo puedes hacer con for each
Excelente Video Sergio, Muy completo Gracias
Gracias Sergio,, mil gracias
Un vídeo muy esperado
Excelente, Sergio. ¿En qué casos se debe utilizar ElseIf?
👏👏
Hola Sergio, excelente curso, muchísimas gracias por compartir tus conocimientos con los que queremos aprender. Me gustaría hacerte una sugerencia a propósito de este tutorial 25, podrías hacer un tutorial para saber el significado de los errores que lanza VBA cuando cometemos errores, ya que la descripción y el "lenguaje" que da el cuadro de diálogo al menos para los novatos es algo que no entendemos. Muchas gracias!!!!
Hola amigo Sergio, un gusto saludarte. Me estoy iniciando en las macros de VBA y lo hago a través de tu curso. Quería saber si en un ciclo For Next, podemos hacer que no se ejecute la operación para un valor determinado y el ciclo continúe. No es el caso del video, que hacemos que salte una operación porque se genera un error. Es el caso, por ejemplo simple de imprimir los números del 1 al 10, pero cuando la variable sea igual a 5, no lo imprima, sino que salte al siguiente y continúe con el resto de los números. Probé con la sentencia CONTINUE, pero da error. Gracias amigo Sergio
con if variable < > 5 then eso dentro de tu bucle for
Sergio buenas noches, seria posible que dejara ejercicios para estos capitulos?
Buen día Sergio.-
Acudo a ti con el fin de solicitar tu asistencia para la resolución de lo siguiente:
Estoy preparando una hoja de Excel en la que utilizo varias filas, que están ocultas, para efectuar los cálculos necesarios, por ejemplo desde la fila 10 hasta la 20, pero al momento de la visualización de las mismas quiero que se efectué desde la fila 10 hasta la fila cuyo número introduzco en una celda ubicada, por ejemplo, en la fila 5.
Por favor, me puede indicar las instrucciones que debe incluir una macro para que realice la visualización de las filas en cuestión.
Mil Gracias por tu amable atención
Atte
Tomas Hdez
Sergio, he visto varios ejemplos en algunos videos de macros que usan "On Error Resume Next" pero nunca había visto que cerraran con "On Error GoTo 0". Este cierre es siempre obligatorio?
Gracias por esta nueva entrega Sergio, muy útil.
Obligatoria no, nunca está de más hacer las cosas respetando las buenas prácticas. Hay ocasiones donde necesitamos implementar varios controladores de errores, ahí sí es obligatorio restablecer con Error goto 0
Hola Sergio muy buenos tus videos, soy un apasionado por las macros, como tema abordar en estos tópicos me gustaría ver un caso practico de Paso por referencia (ByRef) o por valor (ByVal).
Saludos...
Claro! Ese tema viene pronto.
Magazo!!!
Sergio, muchas gracias por compartir tus enseñanzas, son muy aleccionadoras, me ayudas un montón! gracias mil....!
Te pido por favor que me apoyes en un proyecto, y te explico...
resulta que tengo mas de tres mil archivos muy simples de excel de solo una hoja y muy escasos datos que consisten en datos de la persona en las cinco primeras filas, y luego entre 5 a 25 proximas lineas solo datos simples todos los archovos cuentan con un mismo formato y numero de columnas fijas no mas de 10, pero el archivo se graba con nombre por "default" ejemplo: "archivo1"...etc como puedo hacer un macro que los pueda remombrarlos a cada archivo con el dato que se encuenta en la celda "C1" de esos archivos? o que los copie con otro nombre (dato extraido de la celda "C1" en otro directorio?
Desde ya te agradezco por tu valiosa ayuda
Hola me gustan tus videos deacros estoy aprendiendo mucho,
Quiero hacer un dashboard y he dado con un archivo excel que esta hecho por macros y quería repiclarlo pero no se leer los módulos de las macros.
¿Me ayudarias?
Te puedo pasar el archivo ?
Un saludo y gracias por tus cursos
Holaaa
Gracias. Tengo una duda. Segun entendi son excluyentes las opciones de manejar los errores con la explicacion con la opcion que continue la macro. Espero hacerme entender.
Si uso el manejador de errores que hace ke la macro continue, asi encuentre un error, no puedo usar la que informa la clase de error que se produjo.
Entendi bien?. O se pueden usar las dos? Es decir, ke me muestre la explicacion del error y ke continue ejecutandose la macro.
Pregunta Sergio porque no se debe ocupar GoTo en código??
Hola Sergio, me queda la duda, ¿Por qué la macro ignora la hoja EXCELeINFO? espero puedas contestar mi pregunta. Un saludo y excelente contenido. Gracias.
Lo hice así, porque en ocasiones tenemos una hoja de portada y no queremos que la macro la modifique. Dejo esa opción por si alguien tenga una hoja de esas y vean cómo hacerlo.
@@SergioAlejandroCampos Sergio yo quiero unificar archivos .txt guardados cada una en diferentes carpetas. y que se unan en un archivo nuevo txt. Que codigo nos puedes enseñar.?? Gracias
Algo que yo me he dado cuenta es que hay un punto donde si utilizas un On Error tras otro, llega un momento en que no detecta el error y lo pasa desapercibido.
Buenos dias Profesor Sergio, excelente explicación pero me quedó una duda
Porque no salió error en la 1era hoja (de nombre ExceleInfo) si el contador la había considerado
Muchas gracias
Fíjate que es porque no cumple con las condiciones para entrar en el loop. El loop toma las hojas que se llaman "Hoja" & i. En el caso de Exceleinfo no tiene el prefijo "Hoja".
Saludos
Hola Sergio cómo podria hacer esto: si ocurre un error, que me devuelva al estado inicial. Osea como si no se hubiera ejecutado la macro.
saludos, tengo un prueba para hacer, donde te la puedo enviar para resolverla y conocer la respuesta?
Hola Quiero que la hoja se mantenga protegida y por tanto al inicio de la macro la desprotejo para que funcione y al final la protejo nuevamente antes del end sub pero cuando hay error a mitad de la macro y se finaliza, la hoja queda desprotegida, hay alguna manera de que en caso de error se proteja la hoja antes de finalizar
On error goto -1 que hace?
al usar Err me arroja un error de compilación, que espera una variable, lo mismo con el código que viene en la hoja del ejercicio
Siempre usé on error resume next y nunca supe bien cómo funcionaba jajaja
Buenas Sergio, tengo un problema con un excel con macros que estoy realizando, en el realizo tareas de altas, modificación y bajas de clientes mediante formularios y el caso es que me sale a veces un error que no entiendo. No me sale siempre en el alta o en la modificación o en la eliminación, sino que es aleatorio, puedo dar 10 altas perfectamente y en la 11 me falla. El error que me sale dice lo siguiente: SE HA PRODUCIDO EL ERROR '-2147417848 (80010108)' EN TIEMPO DE EJECUCIÓN: ERROR EN EL MÉTODO 'VALUE' DE OBJETO 'RANGE' y me señala la fila
With Sheets("Clientes")
.Cells(filaInsercion, 1).Value = Me.TXT_CLAVE_CLIENTE.Value
¿Podrías ayudarme? No consigo solucionarlo de ninguna manera y mi excel es bastante complejo como para ponerme a rehacerlo o algo así.
Mil gracias
👍👍👌👌✔✔🦾🦾🤗🤗👀👀😎😎🍺🍺🍺🍺🍺🍺🍺🍺🍺🍺
Este manejador de errores es para un programador con mucha experiencia que ya conozca todos los posibles y motivos errores al ejecutar una macro. y los sepa definir como comentario en el codigo.
Sub CommandButton1_Click()
Dim Nombre As Variant
Dim NombreBuscado As Variant
Dim Rango As Range
On Error GoTo etiqueta
Set Rango = Sheets("Hoja1").Range("A1").CurrentRegion
NombreBuscado = Me.TextBox1.Value
If IsNumeric(NombreBuscado) Then
NombreBuscado = VBA.CDbl(NombreBuscado)
ElseIf IsDate(NombreBuscado) Then
NombreBuscado = VBA.CLng(VBA.CDate(NombreBuscado))
End If
Nombre = Application.WorksheetFunction.VLookup(NombreBuscado, Rango, 2, 0)
With Me
.TextBox2.Value = Nombre
.LblMensaje.Visible = False
.TextBox1.SetFocus
End With
Exit Sub
etiqueta:
If Err.Number = 1004 Then
With Me
.LblMensaje.Caption = "El valor '" & NombreBuscado & "' no fué encontrad."
.LblMensaje.Visible = True
.TextBox2.Value = ""
.TextBox1.SetFocus
End With
Else
MsgBox "Ha ocurrido un error: " & Err.Description, vbExclamation, "elberto Suarez C"
End If
End Sub
Private Sub UserForm_Initialize()
With Me
.TextBox2.Enabled = False
.LblMensaje.Visible = False
.CommandButton1.Default = True
End With
End Sub
esta macro la estoy intendo hacer pero aun no me detecta cuando hay nun error, en donde estare equivicado, no salta a la parte del manejador de error, por favor alguien me puede ayudar