Lección 6: Copiar, pegar y borrar celdas automáticamente con macros.

Escrito por Administrador

20 de septiembre de 2021

En esta lección, vas a aprender a copiar, pegar y borrar el contenido de una celda o rango de celdas de manera automática. ¡Vamos al lío!

Existen diversos métodos para copiar y pegar el contenido de una celda en otra, te voy a explicar el más sencillo que coincide con el más utilizado.

1. Copiar celdas y rangos.

En primer lugar, para copiar el contenido de una celda, no tienes más que seleccionarla y elegir la propiedad Copy:

Cells(2,3).Copy

En este ejemplo, copiamos al portapapeles el contenido almacenado en la celda C2.

En cambio, si lo que queremos es copiar un rango de celdas podrías usar:

Range(Cells(1,4),Cells(1,10)).Copy

O bien:

Range("D1:J1").Copy

En este ejemplo, copiamos al portapapeles el valor del rango D1-J1.

2. Pegar celdas y rangos.

Para pegar el contenido copiado en el portapapeles en una determinada celda (valor y formato de celda), basta con seleccionarla y utilizar la propiedad PasteSpecial:

Cells(3,1).PasteSpecial

En este ejemplo, copiamos el contenido del portapapeles en la celda A3.

Sin embargo, si solo queremos pegar sus valores, lo haríamos así:

Cells(3, 1).PasteSpecial Paste:=xlPasteValues

Cuando hemos copiado en el portapapeles un rango de celdas, para pegarlo, seleccionamos la primera de las celdas y se copiará el rango completo de ésta hacia abajo.

A continuación, vemos esto con un ejemplo.

Primero, crea un libro en blanco, abre el editor VBA, inserta cuatro módulos y copia las siguientes macros:

 

Macro 1. Copiar valores y formato de una celda a otra.

Sub Leccion6_1()

'Macro que copia el contenido de la celda C3 en la celda D3 (valores y formato)

Cells(3, 3).Copy

Cells(3, 4).PasteSpecial

'Desactiva el modo copiar para que no se quede seleccionada la celda con líneas discontinuas

Application.CutCopyMode = False       

End Sub

Macro 2. Copiar solo valores de una celda a otra.

Sub Leccion6_2()

'Macro que copia el contenido de la celda C3 en la celda E3 (solo valores, formato no)

Cells(3, 3).Copy

Cells(3, 5).PasteSpecial Paste:=xlPasteValues

Application.CutCopyMode = False

End Sub

Macro 3. Copiar valores y formato de un rango de celdas. 

Sub Leccion6_3()

'Macro que copia el contenido del rango C3-C10 en la celda F3 (valores y formato)

Range("C3:C10").Copy

Cells(3, 6).PasteSpecial

Application.CutCopyMode = False

End Sub

Macro 4. Copiar solo valores de un rango de celdas.

Sub Leccion6_4()

'Macro que copia el contenido del rango C3-C10 en la celda G3 (solo valores, formato no)

Range("C3:C10").Copy

Cells(3, 7).PasteSpecial Paste:=xlPasteValues

Application.CutCopyMode = False

End Sub

Seguidamente, rellena la hoja con los valores que se muestran a continuación y crea cuatro botones asociados a las cuatro macros que acabamos de copiar. Debería quedarte algo así:

total-operaciones-matematicas-macros

Al ejecutar la primera macro, vemos como se va a copiar el valor de la celda C3 en D3, pero también el formato de la misma. Aprovecho y te dejo un enlace donde explico cómo modificar el formato de una celda utilizando macros.

total-operaciones-matematicas-macros

En cambio, al ejecutar la segunda macro, se copia el valor de la celda C3 en D3, pero no el formato.

total-operaciones-matematicas-macros

Con la tercera macro, copiamos todo el rango de celdas en la columna F, tanto valores como formatos.

total-operaciones-matematicas-macros

Finalmente, en la cuarta macro copiamos todo el rango de celdas en la columna G, pero sólo valores.

total-operaciones-matematicas-macros

3. Borrar celdas y rangos.

Para borrar el valor almacenado en una celda, usaremos la propiedad ClearContents:

Cells(2,5).ClearContents

Sin embargo, si se trata de rangos de celdas utilizamos la siguiente sintaxis:

Range("D1:J1").ClearContents

O bien:

Range(Cells(1,4),Cells(1,10)).ClearContents

Si lo que queremos es borrar tanto valores como formatos, usaremos la propiedad Clear.

Vamos a verlo con otro ejemplo.

En primer lugar, crea dos módulos más y copia las siguientes macros.

 

Macro 5. Borrar solo los valores de un rango de celdas.

Sub Leccion6_5()

'Macro que borra el contenido del rango F3-F10 (solo valores, formato no)

Range("F3:F10").ClearContents

End Sub

Macro 6. Borrar valores y formato de un rango de celdas.

Sub Leccion6_6()

'Macro que borra el contenido del rango F3-F10 (valores y formato)

Range("F3:F10").Clear

End Sub

Seguidamente, añade dos botones y asignalos a las dos nuevas macros.

total-operaciones-matematicas-macros

Como resultado, al ejecutar la quinta macro, borramos los valores de la columna F, pero no el formato de las celdas.

total-operaciones-matematicas-macros

Vuelve a ejecutar la tercera macro para volver a rellenar la columna F con valores.

total-operaciones-matematicas-macros

Ahora ejecuta la sexta macro, verás cómo se borran tanto los valores como el formato de las celdas de la columna F.

total-operaciones-matematicas-macros

Con esto llegamos al final de la sexta lección, en la que has aprendido a copiar, pegar y borrar celdas automáticamente utilizando macros.

Espero que te esté gustando el curso y que me plantees cualquier duda que te surja. También puedes proponerme macros que te interese desarrollar y las voy incluyendo en el temario, soy todo oídos. Nos vemos en el próximo capítulo.

Descarga el archivo del ejemplo

« L5. Operaciones matemáticas en macros.

L7. Automatizar el formato de una celda con macros. »

Por favor, ayúdame y haz clic en el anuncio. Solo te lleva un segundo 😉

 


0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Quizá te interese,

Contacto