como pegar hojas de libros distintos

14/09/2006 - 00:15 por gonzalo | Informe spam
estimados, necesito agrupar cuadros que tienen distinto numero
columnas, pero igual número de filas. y estan en hojas distintas y
archivos distintos. Por lo tanto lo que necesito es abrir una hoja,
pegar en la siguiente fila desocupada el titulo del archivo y el cuadro
del archivo que esta en libro.
bueno, yo no soy muy ducho en estos, de hecho estoy super complicado
con la tarea ya que son 200 libros (o archivos) para 9 paises
distintos. Si alguién me puede puede socorrer..LO AGRADECERE UN
MONTON!!!!!!!!!!!
 

Leer las respuestas

#1 Héctor Miguel
14/09/2006 - 07:29 | Informe spam
hola, gonzalo !

... necesito agrupar cuadros que tienen distinto numero columnas, pero igual numero de filas
... estan en hojas distintas y archivos distintos. Por lo tanto lo que necesito es
... una hoja, pegar en la siguiente fila desocupada el titulo del archivo y el cuadro del archivo que esta en libro.
... estoy super complicado con la tarea ya que son 200 libros (o archivos) para 9 paises distintos...



1) copia/mueve/coloca/... tus ~200 libros en una sola carpeta [o directorio 'comun']...
2) abre un libro nuevo, y escribe en la celda 'A1' de la hoja1 la ruta elegida [p.e.] C:\Mis respaldos\Todos los libros\
- NO olvides el '\' al final :))
3) copia/pega/... las siguientes lineas en un modulo de codigo 'general' EN el proyecto de macros del libro 'nuevo'
NOTA: se asume que la hoja que se va a combinar... -> ES la hoja (1) de cada uno de los ~200 libros...
Y [ademas y muy importante] que la ultima fila de cada hoja SI contiene datos -?-
de lo contrario... la 'siguiente fila libre' en el libro nuevo... va a presentar 'inconsistencias' en el resultado final :-(

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

Sub Combina_archivos_en()
Dim Archivo As String
Application.ScreenUpdating = False
With ThisWorkbook.Worksheets(1)
Archivo = Dir(.Range("a1") & "*.xls")
Do While Archivo <> ""
Workbooks.Open .Range("a1") & Archivo
.Range("a" & Rows.Count).End(xlUp).Offset(2) = _
ActiveWorkbook.Name
ActiveWorkbook.Worksheets(1).UsedRange.Copy _
Destination:=.Range("a" & Rows.Count).End(xlUp).Offset(1)
ActiveWorkbook.Close False
Archivo = Dir()
Loop
End With
End Sub

Preguntas similares