En esta lección vas a aprender cómo hacer scroll usando VBA en Excel, para enfocar la zona de la pantalla que más nos interese de manera automática mediante el uso de las propiedades ScrollRow y ScrollColumn. Aclaro que solo vamos a enfocar, es decir, a mover la pantalla para apuntar lo que nos interesa, en ningún caso vamos a borrar ninguna fila o columna.
Esto es útil, por ejemplo, cuando realizamos un cálculo, y el resultado lo vamos a copiar en una casilla concreta. Entonces, para no tener que movernos con las barras de desplazamiento o el ratón, lo que hacemos es enfocar directamente esa celda para ver el resultado más rápido.
Con ScrollRow, lo que hacemos es seleccionar que fila va a ser la primera en mostrarse en la matriz de celdas, es decir, si por ejemplo escribimos:
La fila 5 será la primera fila visible. Da igual la columna que pongas (en este ejemplo aparece la columna A como valor introducido, pero daría lo mismo que hubiéramos puesto la columna Z o la D), este comando solo afecta a la visualización de las filas.
Con ScrollColumn, lo que hacemos es seleccionar que columna va a ser la primera en mostrarse en la matriz de celdas, es decir, si por ejemplo escribimos:
La columna G será la primera columna visible. Da igual la fila que pongas (en este ejemplo aparece la fila 1, pero daría lo mismo que hubiéramos puesto la fila 34 o la 90), este comando solo afecta a la visualización de las columnas.
Si combinamos ambos comandos podremos enfocar la pantalla para que la primera celda sea la fila 5, columna G.
Vamos a hacer algún ejemplo práctico para que nos quede bien claro el concepto del scroll con VBA en Excel.
Crea un libro nuevo, abre el editor VBA e inserta 3 módulos. Copia en ellos las siguientes macros.
Macro 1. Calcular la media de un examen. El resultado queda fuera de la pantalla.
'Macro que calcula la nota media del examen
For i = 3 To 27
'Vamos guardando en la variable suma el valor de cada celda D más el acumulado que lleve
suma = suma + Cells(i, "D").Value
Next
'La media es la suma de todas las notas dividida por el total de alumnos
media = suma / 25
'Mostramos el resultado de la media en la celda D28
Cells(28, "D").Value = media
End Sub
Macro 2. Enfocar la pantalla en la celda del resultado.
'Macro que enfoca la pantalla para centrarla en la celda D28 donde se muestra el resultado
ActiveWindow.ScrollRow = Cells(16, "A").Row
End Sub
Macro 3. Restablecer la hoja de cálculo.
'Macro que restablece la hoja de cálculo
'Borramos la media calculada
Cells(28, "D").ClearContents
'Elegimos la fila 1 como la primera fila visible
ActiveWindow.ScrollRow = Cells(1, "A").Row
'Elegimos la columna A como la primera columna visible
ActiveWindow.ScrollColumn = Cells(1, "A").Column
End Sub
Rellenamos la hoja de cálculo como se muestra en la figura. Para ello tendrás que crear tres botones a los que asociarás las macros anteriores.
A continuación, te dejo dos enlaces donde explico cómo configurar Microsoft Excel para el uso de macros y cómo asignar macros a botones, por si te interesan.
La primera macro calcula la nota media del examen de forma automática. Este resultado queda fuera de la pantalla, tendrías que bajar para verlo. Pero no lo hagas. Para eso hemos creado la segunda macro.
Cuando ejecutas la segunda macro, elegimos la fila 16 como la primera para que se muestre. Nuestro resultado lo tenemos en la fila 28, luego aparecerá más o menos centrado en la pantalla.
No hemos centrado columna porque en este ejemplo ya está más o menos centrada de por sí.
La tercera macro va a borrar la nota media, elige la fila 1 como la primera fila a mostrar y la columna A como la primera columna a mostrar, por si queremos volver a probar.
Aunque ahora a lo mejor os parezca una tontería, con el tiempo, le encontrareis la utilidad. En el próximo capítulo aprenderéis a cambiar de hoja e incluso de libro, y es interesante que al final de todo el proceso, la pantalla os muestre el resultado y no tener que navegar hasta él.
Con esto llegamos al final de la vigésima lección, en la que has aprendido a realizar scroll usando VBA en Excel.
Por último, quiero invitarte a compartir tus dudas en los comentarios o en el foro. Intentaré ayudarte en todo lo que pueda, y así aprenderemos todos.
Nos vemos en el próximo capítulo.
Si te ha servido y quieres donar
Descarga el archivo del ejemplo
« L19. Identificar máximo/mínimo de un rango con macros.
L21. Trabajar con distintas hojas y libros con macros. »
0 comentarios