Como utilizar GoTo en Macro




La instrucción GoTo es utilizada por los programadores, en una macro o procedimiento de VBA para saltar a una linea especificada del código.

En la practica se usa para saltar un bucle y cuando un dato especifico sea encontrado o se cumpla una condición, etc. y de esta manera saltar una serie de instrucciones que no se aplican a ese dato, en resumen con GoTo se va a una linea determinada del código.

Antes de continuar, recomiendo que leas un excelente libro sobre Excel el que te ayudará operar las planillas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.

Siguiendo con el desarrollo de la Instrucción GoTo, tiene como desventaja que solo salta a etiquetas o líneas del procedimiento donde se inserta o aparece GoTo no a otro procedimiento distinto, por ejemplo se puede utilizar así:

Salta a la etiqueta salir, se debe especificar el nombre de la etiqueta a donde saltará el código; se usa este código:

GoTo salir:

... código

salir:



  

En el siguiente ejemplo verás el uso de GoTo para saltar de un bucle y cuando aparece el registro "Tomy Lee" o "Dayra Col" no se tienen en cuenta, saltando el bucle y no aplicando el código establecido a dichos registros, en otras palabras a los demás registros los resalta y a los registros mencionado no aplica color a la fila.

Al descargar el ejemplo desde el link del final del post, se puede observar tres botones, el primer botón utiliza el GoTo, el segundo no lo utiliza y se agrega a los fines de que se pueda observar la diferencia, el tercer botón borra el resaltado de las filas.

También puedes observar la explicación nuestro canal de You Tube, suscribe para recibir en tu correo vídeos explicativos sobre otras macros interesantes que se publiquen, como  por ejemplo formulario que crea un listado de todas las hojas para poder luego seleccionarlas, buscar en listbox mientras escribes en textbox, ordenar hojas libro excel por su nombre, conectar Excel con Access y muchos ejemplos más.






Código que se inserta en un módulo



Sub UsoGoTo()
Dim clie As New Collection, celda As Object, dato
Dim fila As Integer, j As Long
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
uf = Range("A" & Rows.Count).End(xlUp).Row
r1 = "A2" & ":A" & uf
For Each celda In Range(r1)
clie.Add celda.Value, CStr(celda.Value)
Next celda
fila = 2
j = 255
For Each dato In clie
Do
If Cells(fila, "A") = dato Then
If dato = "Tomy Lee" Or dato = "Dayra Col" Then GoTo jump:
Range("A" & fila & ":E" & fila).Interior.Color = j
End If
jump:
fila = fila + 1
Loop While fila <= uf
j = j + 60000
fila = 2
Next dato
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

Sub SinUsoGoTo()
Dim clie As New Collection, celda As Object, dato
Dim fila As Integer, j As Long
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
uf = Range("A" & Rows.Count).End(xlUp).Row
r1 = "A2" & ":A" & uf
For Each celda In Range(r1)
clie.Add celda.Value, CStr(celda.Value)
Next celda
fila = 2
j = 255
For Each dato In clie
Do
If Cells(fila, "A") = dato Then
Range("A" & fila & ":E" & fila).Interior.Color = j
End If
fila = fila + 1
Loop While fila <= uf
j = j + 60000
fila = 2
Next dato
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub


Sub quitaformato()
uf = Range("A" & Rows.Count).End(xlUp).Row
Range("A2" & ":E" & uf).Interior.Color = xlNone
End Sub



Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.


If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.


Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends