Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MENU
Hoy crearemos una macro para copiar datos de una hoja a otra y podrás ver que este
método es mucho más directo y además deja nuestras hojas sin tantas fórmulas. Al
desarrollar esta macro nos aseguraremos de que se pueda copiar un rango completo de
celdas o que se puedan copiar solamente las celdas visibles después de haber aplicado un
ltro. Para nuestro ejemplo trabajaremos con los siguientes datos:
Al momento de personalizar esta macro para copiar tus propios datos, deberás realizar las
siguientes con guraciones:
Con gurar los objetos wsOrigen y wsDestino con el nombre de la hoja que contiene
los datos originales y la hoja hacia la cual serán copiados.
Con gurar la constante celdaOrigen con la referencia de celda ubicada en la esquina
superior izquierda del rango de celdas que será copiado. La macro detectará y
copiará automáticamente las columnas y las adyacentes.
Con gurar la constante celdaDestino con la referencia de celda en donde se
comenzará a pegar el rango copiado.
Las últimas dos instrucciones del código mostrado anteriormente inicializan las variables
rngOrigen y rngDestino con la información de los objetos previamente con gurados.
https://exceltotal.com/macro-para-copiar-datos-de-una-hoja-otra-en-excel/ 2/6
19/3/2020 Macro para copiar datos de una hoja a otra en Excel • Excel Total
La primera línea hace la selección de la celda origen, que es la esquina superior izquierda del
rango de datos original. En seguida se aumenta la selección hacia abajo (xlDown), hasta la
última la adyacente y posteriormente hacia la derecha (xlToRight). Pronto verás que esta
técnica de selección de celdas será útil para copiar las celdas visibles.
1 Sub CopiarCeldas()
2
3 'Definir objetos a utilizar
4 Dim wsOrigen As Excel.Worksheet, _
5 wsDestino As Excel.Worksheet, _
6 rngOrigen As Excel.Range, _
7 rngDestino As Excel.Range
8
9 'Indicar las hojas de origen y destino
10 Set wsOrigen = Worksheets("Origen")
11 Set wsDestino = Worksheets("Destino")
12
13 'Indicar la celda de origen y destino
14 Const celdaOrigen = "A1"
15 Const celdaDestino = "A1"
16
17 'Inicializar los rangos de origen y destino
18 Set rngOrigen = wsOrigen.Range(celdaOrigen)
19 Set rngDestino = wsDestino.Range(celdaDestino)
20
21 'Seleccionar rango de celdas origen
22 rngOrigen.Select
23 Range(Selection, Selection.End(xlDown)).Select
24 Range(Selection, Selection.End(xlToRight)).Select
25 Selection.Copy
26
27 'Pegar datos en celda destino
28 rngDestino.PasteSpecial xlPasteValues
29 Application.CutCopyMode = False
30
31 End Sub
https://exceltotal.com/macro-para-copiar-datos-de-una-hoja-otra-en-excel/ 3/6
19/3/2020 Macro para copiar datos de una hoja a otra en Excel • Excel Total
Para nuestra primera prueba dejaré el código de la macro tal como fue desarrollado, es decir
con la celdaOrigen haciendo referencia a la celda A1 y lo mismo para la celdaDestino. Al
pulsar el botón copiar, la hoja Destino de nuestro libro se verá de la siguiente manera:
Los datos se han copiado correctamente de la hoja Origen a la hoja Destino. Las celdas no
tienen formato porque la instrucción VBA que usamos para pegar hace uso del parámetro
xlPasteValues.
Para el segundo ejemplo haremos los siguientes ajustes. Primero borraré los datos de la
hoja Destino. Después aplicaré un ltro a la columna Categoría en los datos de la hoja
Origen.
Finalmente editaré la macro (línea 28) para cambiar el parámetro xlPasteValues por el
parámetro xlPasteAll de la siguiente manera:
rngDestino.PasteSpecial xlPasteAll
Con estos ajustes realizados, pulsaremos el botón Copiar ubicado en la hoja Origen y
obtendremos el siguiente resultado en la hoja Destino:
En esta ocasión se han copiado solamente las celdas visibles y además tienen el mismo
formato que las celdas originales.
Ahora descarga el libro de trabajo y comienza a utilizar la macro para copiar datos de una
hoja a otra en Excel. Solo recuerda que debes con gurar cada una de las variables en el
código VBA de acuerdo al nombre de las hojas de tu libro e indicar las referencias a las
celdas de origen y destino.
https://exceltotal.com/macro-para-copiar-datos-de-una-hoja-otra-en-excel/ 5/6
19/3/2020 Macro para copiar datos de una hoja a otra en Excel • Excel Total
Artículos relacionados
Cómo copiar y pegar celdas con VBA
Microsoft Excel
https://exceltotal.com/macro-para-copiar-datos-de-una-hoja-otra-en-excel/ 6/6