Hacer que la macro se repita mediante un bucle.- Con esto, conseguiríamos que el cursor se desplazase una fila hacia abajo, pero luego se pararía. Tendríamos que ir pulsando Ctrl + K constantemente. Debemos crear un bucle controlado de forma que la macro se ejecute una y otra vez hasta que nosotros lo decidamos.
Para ello, crearemos un procedimiento personalizado en el que se creará un bucle que contendrá la macro:
|
Procedimiento Comienzo del bucle Macro Fin del bucle y volver a comenzar bucle Fin del procedimiento |
Ahora bien, ¿cómo sabe él cuando tiene que parar el bucle? Evidentemente no continuará hasta la fila 65.536. ¿Cuándo debe parar? Cuando encuentre la primera celda vacía. En ese momento parará.
|
Procedimiento Comienzo del bucle. Repetir bucle hasta que celda activa = "" Macro Fin del bucle y volver a comenzar bucle Fin del procedimiento |
Su equivalente en lenguaje basic sería:

El bucle Do Until...Loop (repetir hasta que se cumpla la condición) verifica que cada vuelta se vaya comprobando que la condición no se cumple. En el momento en que se cumple, es decir, en que la celda activa no contiene nada (""), se detiene el bucle.
13.Modifica el código de la macro como este último ejemplo, sitúate en la celda D3 y ejecuta la macro.
¿A que ya va pareciendo otra cosa? No obstante continúan los inconvenientes. La macro se detiene. Tendríamos que volver a situar el cursor en la primera celda a comprobar de la segunda columna. Vamos a desplazar la celda activa para que se sitúe automáticamente en la siguiente columna.
Podríamos, al finalizar el bucle, añadir la siguiente línea:
Loop
Range("E3").Select
End Sub
Y Excel situaría el cursor automáticamente en la siguiente columna. A continuación sólo quedará volver a ejecutar la macro. El problema viene cuando haya que volver a ejecutarla en la siguiente columna; el cursor volverá a la celda E3.
Vamos a añadir líneas de código que desplacen el cursor hacia arriba y lo sitúen en la siguiente celda con un valor numérico. Corresponde a las pulsaciones Flecha derecha, Flecha arriba, Fin, Flecha arriba, Flecha abajo que serían las encargadas de situar el cursor en la siguiente columna.
|
ActiveCell.Offset(0, 1).Activate ActiveCell.Offset(-1, 0).Activate Selection.End(xlUp).Select ActiveCell.Offset(1, 0).Activate |
De esta forma, controlamos la posición del cursor de forma que se sitúe en la primera celda numérica de la siguiente columna.
1.Modifica la macro de esta forma.
2.Prueba la macro.
3.En la siguiente columna, vuelve a ejecutar la macro.
La macro debería pasar siempre de una columna a otra.
Hay 199 opiniones. Opina sobre este curso.
| Cursos | Valoración | Alumnos | Vídeo | |
|---|---|---|---|---|
|
Diseño de base de datos relacionales Aprende a diseñar bases de datos relacionales.Conocer el origen, historia y la evolucion. Además aprenderas a conocer los tipos de relaciones que existen y que te convert... [13/04/05] |
|
11.643 | ||
|
Introducción a Word Word es el editor de texto más potente del mercado y, sin duda, uno de los productos más conocidos de Microsoft. En este curso aprenderemos gratis la mayoría de posibilid... [21/03/02] |
|
49.130 | ||
|
Breve teoría de la selección de canales en Photoshop Breve tutorial sobre selecciones de áreas por medio de composición del color en Photoshop. Cuando trabajamos sobre una imagen, lo hacemos siempre sobre una com... [09/03/05] |
|
6.667 | ||
Publicar en
del.icio.us
digg
meneame