Excel macro para copiar rango de celdas de otros libros

Estoy comenzando a usar la web... Es muy recursiva!

Muchachos expertos.. Tengo el siguiente código copiado de esta misma web, una macro q me ha sido muy útil.. Pero lo que necesito es copiar unicamente el rango de celdas que especifico G13:N13, ya que el código que tengo me copia toda la matriz de celdas que tienen algún formato de esta forma -> G13: N40 (así las celdas estén vacías), creo q es por el procedimiento xlLastCell, no se si me entienden! Ya lo intente con celdas vacías sin formato y funciona perfecto, aunque se pasa del rango y si hay mas datos a la derecha copia esos datos.. Solo requiero de ese rango...

Muy amables con su colaboración..

Saludos :)

Sub libros()
'Lee archivos del directorio y Copia la hoja 1
'Por.Dam
Application.ScreenUpdating = False
ruta = ThisWorkbook.Path
ChDir ruta
archi = Dir("*.xls*")
Set h1 = ThisWorkbook.Sheets("hoja2")
On Error Resume Next
Do While archi <> ""
 If InStr(1, archi, "nuevo") = 0 Then
 Workbooks.Open archi
 If Err.Number = 0 Then
 Sheets(2).Select
 Range(Range("G13:N13"), ActiveCell.SpecialCells(xlLastCell)).Copy _
 h1.Range("G" & h1.Range("G13:N13").SpecialCells(xlLastCell).Row + 1)
 Else
 Err.Number = 0
 End If
 Application.DisplayAlerts = False
 Workbooks(archi).Close
 Application.DisplayAlerts = True
 End If
 archi = Dir()
Loop
End Sub

1 respuesta

Respuesta
2

Cambia esto:

Range(Range("G13:N13"), ActiveCell. SpecialCells(xlLastCell)).Copy _
H1.Range("G" & h1. Range("G13:N13"). SpecialCells(xlLastCell).Row + 1)

Por esto:

Range(Range("G13:N13")).Copy _
H1.Range("G" & h1. Range("G13:N13"). SpecialCells(xlLastCell).Row + 1)

Prueba y me comentas
Saludos. Dante Amor
Si es lo que necesitas.

Hola dAnte, muchas gracias por tu rápida respuesta!!

Te comento que al ejecutar la macro no me arroja ningún resultado, no sé si tenga algo q ver "SpecialCells(xlLastCell)"

muy amable!!

Entonces no entendí, ¿quieres copiar únicamente la fila 13 desde la columna G hasta la N?

¿Ya revisaste que tengas datos en esa fila 13?

Prueba esta

Range("G13:N13").Copy _
H1.Range("G" & h1. Range("G13:N13"). SpecialCells(xlLastCell).Row + 1)

Saludos. DAM

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas