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 198 opiniones. Opina sobre este curso.
| Cursos | Valoración | Alumnos | Vídeo | |
|---|---|---|---|---|
|
Curso avanzado de Word XP. Segunda parte Word XP, incluido en el paquete de ofimática Office de Microsoft, es el programa más utilizado para el tratamiento de textos. Con él podemos crear y modificar cualquier t... [19/09/03] |
|
7.597 | ||
|
Restaurar fotografías con Photoshop Seguramente en alguna ocasión hemos tenido en nuestras manos alguna fotografía antigua en blanco y negro con algún tipo de deterioro por el paso del tiempo. En e... [26/01/05] |
|
54.931 | ||
|
Sistemas operativos Una breve reseña de lo que son los sistemas operativos, sus caracteristicas y las funciones que tienen, asi de como se clasifican dentro de todos los sistemas operativos ... [23/03/05] |
|
6.747 | ||
Publicar en
del.icio.us
digg
meneame