Jump to content

Copiar y pegar datos de una hoja a otra en la primera fila libre (error 1004, el área de copiar y pegar no tienen el mismo tamaño)


Recommended Posts

Hola,

Estoy con algo muy básico, nunca he tenido problemas... pero me ha saltado de repente un error por primera vez donde no consigo encontrar qué sucede.

Estoy intentado copiar los datos de la hoja TBIS en la primera fila libre de la hoja T.  Es algo que hago a menudo, pero me he encontrado con un problema que nunca había visto. Error 1004. el área de copiado y pegado no tienen el mismo tamaño. Tienen el mismo número de columnas... y las cabeceras son iguales. He probado a limpiar todas las celdas vacías de cada hoja, por si ahí estuviera el problema pero no consigo verlo.

Os adjunto un ejemplo.

Gracias de antemano. 

ejemplo_copypaste.xlsm

Link to comment
Share on other sites

Hola @Maria_80

Acorde a tu código: 

Range(Range("A2"), Range("A2").End(xlDown)).Select
Range(Selection, Selection.Offset(, 44)).Select ' para que abarque 45 columnas (siempre es una menos)
Selection.Copy

Estas copiando todas filas de la hoja Sheets("TBIS"), cuando tratas de pegar en la primera fila sin datos de la otra hoja, por eso te marca error.

Nos comentas.

Link to comment
Share on other sites

3 minutes ago, Mauricio_ODN said:

Hola @Maria_80

Acorde a tu código: 

Range(Range("A2"), Range("A2").End(xlDown)).Select
Range(Selection, Selection.Offset(, 44)).Select ' para que abarque 45 columnas (siempre es una menos)
Selection.Copy

Estas copiando todas filas de la hoja Sheets("TBIS"), cuando tratas de pegar en la primera fila sin datos de la otra hoja, por eso te marca error.

Nos comentas.

Hola, Mauricio. 

Intento copiar todas las filas donde hay datos en TBIS, nunca me había dado problemas. En este caso solo existe una fila, pero a veces hay más. Depende del día... no consigo solucionarlo. Es cierto que me selecciona toda la hoja pero nunca me había dado problemas. 

Link to comment
Share on other sites

Hola de nuevo @Maria_80

Creo que no has revisado particularmente lo que hace tu código, cuando solo tienes un registro a copiar, te va a copiar todas las filas de tu hoja (1,048,576).

Caso contrario cuando tienes dos o mas registros, intenta agregar otro registro y hacer una prueba.

Nos comentas. Saludos.

 

Link to comment
Share on other sites

Just now, Mauricio_ODN said:

Hola de nuevo @Maria_80

Creo que no has revisado particularmente lo que hace tu código, cuando solo tienes un registro a copiar, te va a copiar todas las filas de tu hoja (1,048,576).

Caso contrario cuando tienes dos o mas registros, intenta agregar otro registro y hacer una prueba.

Nos comentas. Saludos.

 

Hola, Mauricio. Puede darse el caso de que exista solo una fila o de que existan muchos más a copiar dependiendo del día en el que lance la macro. Este es el primer caso que me encuentro donde solo existe un registro. Sigo aprendiendo esto de VBA pero quiero creer que ante este caso no tengo que añadir una excepción y existe otra solución. Pregunto aquí para pediros consejo y también para aprender. Sigo sin solucionarlo. Añadir una segunda fila no es la solución. 

Link to comment
Share on other sites

Hola de nuevo @Maria_80

Estaba tratando de orientarte, para que de alguna forma, entendieras que hace tu código para que tu misma pudieras solucionarlo. Lamento si esto te incomodo o molesto.

No estaba dando una solución en especifico, solo trataba que aprendieras. Me disculpo por el inconveniente.

Te dejo una posible solución.

ejemplo_copypaste 1.1.xlsm

Link to comment
Share on other sites

5 minutes ago, Mauricio_ODN said:

Hola de nuevo @Maria_80

Estaba tratando de orientarte, para que de alguna forma, entendieras que hace tu código para que tu misma pudieras solucionarlo. Lamento si esto te incomodo o molesto.

No estaba dando una solución en especifico, solo trataba que aprendieras. Me disculpo por el inconveniente.

Te dejo una posible solución.

ejemplo_copypaste 1.1.xlsm 18.52 kB · 1 download

Gracias, Mauricio. Funciona perfecto. He probado con un registro, con varios, dejando la hoja T en blanco... va genial. ¿debería sustituir el anterior código por esto a partir de ahora en mis macros? Esto es más efectivo que lo anterior y si se da el caso de un registro no va a haber problemas.

 

 Sheets("TBIS").Activate
 
 uf = Cells(1, 1).SpecialCells(xlCellTypeLastCell).Row
 of = Sheets("T").Cells(Rows.Count, 1).End(xlUp).Row + 1
 
       Range(Cells(2, 1), Cells(uf, 45)).Copy _
        Destination:=Sheets("T").Cells(of, 1)

Link to comment
Share on other sites

4 minutes ago, Antoni said:

Prueba esto, a ver si te gusta más.

Sub Copiar()
Sheets("TBIS").Range("A2:AS" & Sheets("TBIS").Range("A" & Rows.Count).End(xlUp).Row).Copy _
Sheets("T").Range("A" & Sheets("T").Range("A" & Rows.Count).End(xlUp).Row + 1)
End Sub

 

Como siempre, mil gracias. Antoni! 

Link to comment
Share on other sites

  • Crear macros Excel

  • Posts

    • Desconozco si por falta de aportación de datos, no me pueden ayudar  o es que no se puede desarrollar esta macro. Gracias.
    • Antoni muchas gracias, eso lo que esperaba. Consegui también estas lineas codigo. Sub Rellenar() Dim uf, fila As Integer uf = Sheets("Consolidar").Range("A" & Rows.Count).End(xlUp).Row fila = 2 While fila <= uf If Sheets("Consolidar").Cells(fila, 2) = Empty Then    Sheets("Consolidar").Cells(fila, 2) = "DIGITAL" End If fila = fila + 1 Wend End Sub
    • Range("B2:B" & ActiveSheet.UsedRange.Rows.Count) = "DIGITAL"  
    • Buenas tardes chicos, Ya lo he hecho funcionar, tarda un poco al pulsar el botón Ejecutar Comparación que supongo que será por lo poco "depurada" que está la macro pero es hasta donde llego a base de leer y copiar y pegar  he observado que ocupa mas de 2Mb y no es normal, supongo que arrastra algún error que lo hace ir ampliando conforme se usa. Os dejo el archivo por si alguien lo necesita, se que es un poco raro pero quien sabe? a lo mejor le va bien a alguien. Un saludo. DiferenciasEntreColumnas.7z
    • Buenos dias expertos, requiero una ayuda, lo que pasa es que tengo una hoja que importa datos de diferentes libros externos y funciona perfecto, pero lo que pasa es que en la columna B aveces faltan datos ya que debe ser la misma palabra "DIGITAL", lo que requiero es una macro que me copie o me rellene la palabra antes mencionado hasta la altura de los registros importados. Por favor me pueden apoyar con dicha macro estare agradecido de todo ustedes se que en esta comunidad hay muchos expertos. Adjunto el archivo. Consolidado.xlsm
  • Recently Browsing

    No registered users viewing this page.

×
×
  • Create New...

Important Information

Privacy Policy