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:
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.
'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.
'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.
'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.
'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í:
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.
En cambio, al ejecutar la segunda macro, se copia el valor de la celda C3 en D3, pero no el formato.
Con la tercera macro, copiamos todo el rango de celdas en la columna F, tanto valores como formatos.
Finalmente, en la cuarta macro copiamos todo el rango de celdas en la columna G, pero sólo valores.
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:
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.
'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.
'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.
Como resultado, al ejecutar la quinta macro, borramos los valores de la columna F, pero no el formato de las celdas.
Vuelve a ejecutar la tercera macro para volver a rellenar la columna F con valores.
Ahora ejecuta la sexta macro, verás cómo se borran tanto los valores como el formato de las celdas de la columna F.
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 😉
Quizá te interese,
0 comentarios