Está en la página 1de 6

19/3/2020 Macro para copiar datos de una hoja a otra en Excel • Excel Total

 MENU 

MACRO PARA COPIAR DATOS DE UNA HOJA A OTRA


EN EXCEL
Cuando necesitas copiar celdas de una hoja a otra en Excel existe la opción de copiar los
datos mediante fórmulas, sin embargo dicho método hace un uso extensivo de funciones y
además es necesario agregar una hoja intermedia para remover los datos no deseados.

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:

DECLARAR E INICIALIZAR OBJETOS


Comenzaré por agregar un módulo de código y de nir la subrutina CopiarCeldas que será la
encargada de realizar la copia de los datos y que contendrá los objetos necesarios para
referenciar las hojas de origen y destino así como los rangos de celdas correspondientes. 
De hecho, para la técnica utilizada en esta macro, solo será necesario indicar la esquina
superior izquierda del rango que deseamos copiar.
https://exceltotal.com/macro-para-copiar-datos-de-una-hoja-otra-en-excel/ 1/6
19/3/2020 Macro para copiar datos de una hoja a otra en Excel • Excel Total

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.

COPIAR Y PEGAR DATOS CON VBA


Después de haber de nido los objetos a utilizar solo nos restará copiar las celdas de la hoja
origen y pegarlas en la hoja destino.

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.

Finalmente se llama el método Copy y en seguida el método PasteSpecial sobre el rango


destino. El parámetro xlPasteValues pega solamente los valores, pero si quieres pegar
inclusive el formato de las celdas, entonces deberás utilizar el parámetro xlPasteAll.

MACRO PARA COPIAR DATOS EN EXCEL


Ahora que ya tienes una idea clara de las instrucciones utilizadas en la elaboración de esta
macro, te dejo el código completo de la subrutina CopiarCeldas:

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

COPIAR DATOS DE UNA HOJA A OTRA


Para probar nuestra macro recién creada insertaré un botón de formulario en la hoja que
contiene los datos originales y al momento de que Excel muestre el cuadro de diálogo

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

Asignar macro seleccionaré la subrutina CopiarCeldas. Como resultado tendremos un botón


que nos permitirá copiar datos de una hoja a otra en Excel.

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.

COPIAR CELDAS VISIBLES


https://exceltotal.com/macro-para-copiar-datos-de-una-hoja-otra-en-excel/ 4/6
19/3/2020 Macro para copiar datos de una hoja a otra en Excel • Excel Total

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

© 2020 EXCEL TOTAL

https://exceltotal.com/macro-para-copiar-datos-de-una-hoja-otra-en-excel/ 6/6

También podría gustarte