3.283 cursos gratis
6.262.191 alumnos
Publica tu curso gratis
Busca cursos gratis:
Estás aquí: mailxmail > Cursos de Informática > Ofimática > Curso de Excel XP (segunda parte) > Cómo hacer que un macro se repita

Curso de Excel XP (segunda parte)

Autor: Xavi Llunell
Curso:  4,91/5 4,91/5 (199 opiniones) |43908 alumnos|Fecha publicación: 05/05/2003

Capítulo 15:

 Cómo hacer que un macro se repita

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:

Cómo hacer que un macro se repita

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.

Capítulo siguiente - Anexo
Recibe nuestras novedades
Al presionar "Recibir" estás dándote de alta y aceptas las condiciones legales de mailxmail

Hay 199 opiniones. Opina sobre este curso.


Cursos similares a Curso de Excel XP (segunda parte)


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]
 4,58/5 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]
 4,51/5 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]
 4,72/5 6.667  


Publicar en   del.icio.us    digg    meneame

¿Qué es mailxmail.com?|ISSN: 1699-4914|Recomiéndanos|Ayuda
Condiciones legales de mailxmail