Como hacer un bucle For Next con letras del abecedario





Seguramente cuando se está realizando una macro se ha necesitado alguna vez realizar un bucle For Next con letras, es fácil si se realiza un bucle entre números, pero realizar el bucle ; lamentablemente la instrucción For ... Next sólo hace un bucle entre números, no hace bucle entre letras; es decir la instrucción sólo permite esta estructura:
recorren las letras del abecedario
con letras se complica; en este ejemplo que te presento, en vez de recorrer números, se

For x= 1 to 20

Instrucciones

Next x

Con lo que estamos diciendo que repita de 1 a 20 el código que este incluido dentro de la Instrucción For ... Next.

Antes de seguir 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.


  


La instrucción For ... Next para realizar un bucle no permite por recorrer de la A a la Z, es decir la siguiente estructura no es válida: For x = A to Z.

Provocará un error, porque no es admitido por VBA, para solucionar este inconveniente, en este ejemplo se apelá a un pequeño artilugio que salva el problema permitiendo recorrer con la instrucción For ...Next todas las letras del abecedario o las letras que requieras.

El problema se puede sortear apelando al código Ascii, acá tienes la tabla de códigos Ascii; en la tabla, la letra A esta representada por el número 60, la B por el 61, la C por el 62 y así sucesivamente hasta la Z que es representada por el número 90; sabiendo esto, se recorre del 60 al 90 y el valor se asigna a una variable que irá cambiando de A a Z dependiendo del valor del código Ascii al realizar el bucle con For.... Next; utilizar este método tiene un problema para los lectores de habla hispana ya que la letra Ñ no se incluye en el recorrido del código Asccii del 60 al 90; ya que la Ñ en el mencionado código es  representada por el número 165; para saltar este inconveniente con la letra Ñ mira este otro ejemplo.

Para clarificar un poco el tema, si quisiéramos ver que letra representa el número 60 en la tabla de códigos Asccii, sólo basta presionar las teclas Alt + 60 y se escribirá la letra que corresponde a esa combinación de teclas.

En la codificación del ejemplo verán que se recorre los números del 60 al 90 y ese número es cargado en la variable letra que se hace igual a la letra que representa el código Ascii, que es formado por el valor de i en cada momento del recorrido del bulce.

For i = 65 To 90
letra = Chr(i)

Para observar en forma más gráfica y detallada lo narrado te sugiero mires el vídeo a continuación donde encontrarás una explicación extra, previamente descarga, en forma gratuita, desde el final de la página el ejemplo para su total comprensión.

Suscribe a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, 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 AbecedarioSN()
Dim conta As Boolean, fila As Long, letra As String
Set a = Sheets(ActiveSheet.Name)
fila = 2
For i = 65 To 90
letra = Chr(i)
a.Cells(fila, "A") = letra
fila = fila + 1
Next i
End Sub

Sub Clear()
Range("A:A").Clear
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