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

Escrito por Administrador

19 de agosto 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. Copiado

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.

Si se trata de 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. Pegado

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.

Si solo queremos pegar sus valores lo haríamos así:

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

Si hemos copiado al portapapeles un rango de celdas, seleccionamos la primera de las celdas donde queremos copiarlo y de ésta hacia abajo se copiará el rango completo.

Veamos esto con un ejemplo.

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

 

Macro 1

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

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

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

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

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 copia el valor de la celda C3 en D3, pero también el formato de la misma.

total-operaciones-matematicas-macros

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

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

total-operaciones-matematicas-macros

3. Borrado

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

Cells(2,5).ClearContents

Si se trata de rangos de celdas:

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.

Creamos dos módulos más y copiamos las siguientes macros.

 

Macro 5

Sub Leccion6_5()

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

Range(“F3:F10”).ClearContents

End Sub

Macro 6

Sub Leccion6_6()

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

Range(“F3:F10”).Clear

End Sub

Añadimos dos botones que asignamos a las dos nuevas macros.

total-operaciones-matematicas-macros

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. 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 los atributos de una celda con macros. »

0 comentarios

Enviar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

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

Quizá te interese,

Contacto