Buscar..


Cómo grabar una macro

La forma más fácil de grabar una macro es que el botón en la esquina inferior izquierda de Excel tenga este aspecto: Comience a grabar Marco Button

Cuando hagas clic en esto, aparecerá una ventana emergente que te pedirá que le asignes un nombre a la Macro y que decidas si quieres tener una tecla de acceso directo. Además, pregunta dónde almacenar la macro y para una descripción. Puede elegir el nombre que desee, no se permiten espacios.

Pop up para grabar macro

Si desea tener un acceso directo asignado a su macro para un uso rápido, elija una letra que recordará para poder usar la macro rápida y fácilmente una y otra vez.

Puede almacenar la macro en "Este libro de trabajo", "Nuevo libro de trabajo" o "Libro de macros personal". Si desea que la macro que está a punto de grabar esté disponible solo en el libro de trabajo actual, elija "Este libro de trabajo". Si desea guardarlo en un libro nuevo, elija "Nuevo libro". Y si desea que la macro esté disponible para cualquier libro que abra, elija "Libro de macros personal".

Una vez que haya completado esta ventana emergente, haga clic en "Aceptar".

A continuación, realice las acciones que desee repetir con la macro. Cuando haya terminado, haga clic en el mismo botón para detener la grabación. Ahora se ve así:

Detener grabación macro

Ahora puedes ir a la pestaña Desarrollador y abrir Visual Basic. (o use Alt + F11)

Ahora tendrá un nuevo módulo en la carpeta Módulos. Nuevos modulos

El módulo más nuevo contendrá la macro que acaba de grabar. Haga doble clic en él para que aparezca.

Hice un sencillo copiar y pegar:

Sub Macro1()
'
' Macro1 Macro
'

'
    Selection.Copy
    Range("A12").Select
    ActiveSheet.Paste
End Sub

Si no desea que siempre se pegue en "A12", puede usar Referencias Relativas marcando la casilla "Usar Referencias Relativas" en la pestaña Desarrollador: Referencias Relativas

Siguiendo los mismos pasos que antes, ahora la Macro se convertirá en esto:

Sub Macro2()
'
' Macro2 Macro
'

'
    Selection.Copy
    ActiveCell.Offset(11, 0).Range("A1").Select
    ActiveSheet.Paste
End Sub

Aún copiando el valor de "A1" en una celda 11 filas hacia abajo, pero ahora puede realizar la misma macro con cualquier celda inicial y el valor de esa celda se copiará en las celdas 11 filas hacia abajo.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow