copiar datos de varios archivos xls

25/01/2008 - 22:37 por Juan m | Informe spam
Buenas tardes, de antemano gracias por sus comentarios que puedan
proporcionar, asi como su ayuda.

Requiero compilar (agrupar/consolidar) la informacion que tengo en 3
archivos diferentes,en direcciones diferentes, los cuales cuentan con los
mismos nombres tanto de hojas como de columnas, pero estos archivos, los
quiero especificar, en celtras, para caso cambien nombre, solo modificar
dichas celdas.

los rangos a copiar en cada uno de los archivos van desde el a1:z200.

muchas graciasde antemano.

Preguntas similare

Leer las respuestas

#1 Ivan
26/01/2008 - 03:46 | Informe spam
hola,Juan

Requiero compilar (agrupar/consolidar) la informacion que tengo en 3




archivos diferentes,en direcciones diferentes,  los cuales cuentan con los
mismos nombres tanto de hojas como de columnas, pero estos archivos, los
quiero especificar, en celtras, los rangos a copiar en cada uno de los archivos
van desde el a1:z200<<<<



la verdad es que quizas no vendrian mal algunos detalles mas de tus
intenciones, pero a falta de estos, se me ocurren unas cuantas
posibilidades, entre ellas esta=>

pon en un libro nuevo en la "Hoja1" en a1:c1 los nombres con la ruta
completa de tus archivos y guarda el libro en el directorio donde
quieras guardar tus 'resumenes/compilaciones'

en un modulo normal (en el editor de VBa => menu insertar => modulo a
secas (NO de clase) ) de este lbro copia/pega este codigo y prueba a
ver que tal

''--copia desde aqui
Sub ResumenLibroNuevo()
Dim n As Byte, i As Integer, Nombre As String
With ThisWorkbook
Nombre = .Path & "\" & "Resumen_" & Format(Now, "d-mmm-yy_hmmss")
& ".xls"
Application.ScreenUpdating = False
For n = 1 To 3
Select Case n
Case 1: Workbooks.Add .Worksheets("Hoja1").Cells(1, n).Value
ActiveWorkbook.SaveAs Nombre
Case Else
Workbooks.Open .Worksheets("Hoja1").Cells(1, n).Value
With ActiveWorkbook
For i = 1 To .Worksheets.Count
With Worksheets(i)
.Range("a2:z200").Copy
Workbooks(Nombre).Worksheets(.Name) _
.Range("a" & .Rows.Count).End(xlUp).Offset(1)
Workbooks(Nombre).Worksheets(.Name).Columns.AutoFit
End With
Next
.Close True
End With
End Select
Next
Workbooks(Nombre).Save
End With
End Sub
''-copia hasta aqui -

OJO: no esta probado, pero creo que funcionaria. Si quieres comentas

un saludo
Ivan
Respuesta Responder a este mensaje
#2 Ivan
26/01/2008 - 03:50 | Informe spam
te lo vuelvo a poner evitando los trunques del editor del foro

Sub ResumenLibroNuevo()
Dim n As Byte, i As Integer, Nombre As String
With ThisWorkbook
Nombre = .Path & "\" & "Resumen_" & _
Format(Now, "d-mmm-yy_hmmss") & ".xls"
Application.ScreenUpdating = False
For n = 1 To 3
Select Case n
Case 1: Workbooks.Add .Worksheets("Hoja1").Cells(1, n).Value
ActiveWorkbook.SaveAs Nombre
Case Else
Workbooks.Open .Worksheets("Hoja1").Cells(1, n).Value
With ActiveWorkbook
For i = 1 To .Worksheets.Count
With Worksheets(i)
.Range("a2:z200").Copy Workbooks(Nombre) _
.Worksheets(.Name).Range("a" & .Rows.Count) _
.End(xlUp).Offset(1)
Workbooks(Nombre).Worksheets(.Name).Columns.AutoFit
End With
Next
.Close True
End With
End Select
Next
Workbooks(Nombre).Save
End With
End Sub

un saludo y ojo por si se ha vuelto a quebrar alguna linea
Ivan
Respuesta Responder a este mensaje
#3 Ivan
26/01/2008 - 04:22 | Informe spam
hola,Juan

he eliminado los dos mensajes anteriores para no acumular. Este ya si
esta probado y parece funcionar


Requiero compilar (agrupar/consolidar) la informacion que tengo en 3




archivos diferentes,en direcciones diferentes, los cuales cuentan con los
mismos nombres tanto de hojas como de columnas, pero estos archivos, los
quiero especificar, en celtras, los rangos a copiar en cada uno de los archivos
van desde el a1:z200<<<<




la verdad es que quizas no vendrian mal algunos detalles mas de tus
intenciones, pero a falta de estos, se me ocurren unas cuantas
posibilidades, entre ellas esta=>

pon en un libro nuevo en la "Hoja1" en a1:c1 los nombres con la ruta
completa de tus archivos y guarda el libro en el directorio donde
quieras guardar tus 'resumenes/compilaciones'


en un modulo normal (en el editor de VBa => menu insertar => modulo a
secas (NO de clase) ) de este lbro copia/pega este codigo y prueba a
ver que tal


''--copia desde aqui
Sub ResumenLibroNuevo()
Dim n As Byte, i As Integer, Nombre As String
With ThisWorkbook
Nombre = "Resumen_" & Format(Now, "d-mmm-yy_hmmss")
Application.ScreenUpdating = False
For n = 1 To 3
Select Case n
Case 1: Workbooks.Add .Worksheets("Hoja1").Cells(1, n).Value
ActiveWorkbook.SaveAs .Path & "\" & Nombre & ".xls"
Case Else
Workbooks.Open .Worksheets("Hoja1").Cells(1, n).Value
With ActiveWorkbook
For i = 1 To .Worksheets.Count
With Worksheets(i)
.Range("a2:z200").Copy Workbooks(Nombre) _
.Worksheets(.Name).Range("a" & .Rows.Count) _
.End(xlUp).Offset(1)
Workbooks(Nombre).Worksheets(.Name).Columns.AutoFit
End With
Next
.Close True
End With
End Select
Next
Workbooks(Nombre).Save
End With
End Sub''-copia hasta aqui -



un saludo
Ivan
Respuesta Responder a este mensaje
#4 Juan m
26/01/2008 - 20:35 | Informe spam
Muchas gracias.

Perdon por no poner mas detalle en correo anterior;

se busca realizar una consulta en base a ciertos datos capturados en celdas
b2:b7 (listas de datos que se han capturado en los archivos detalle),
mismos que estoy utilizando para obtener una clave unica,

que al conseguir obtener el consolidado de los 3 archivos de una sola hoja
en particular de cada archivo, a una sola hoja, agregandole
una columna con los campos consulta seleccionados, para establecer tambien
la clave unica.

mostrar los registros que cumplan con la consulta o clave unica de consulta,

caso me indiquen una opcion mejor, sin consolidar, claro que sera
bienvenida.









"Ivan" escribió en el mensaje
news:
hola,Juan

he eliminado los dos mensajes anteriores para no acumular. Este ya si
esta probado y parece funcionar


Requiero compilar (agrupar/consolidar) la informacion que tengo en 3




archivos diferentes,en direcciones diferentes, los cuales cuentan con
los
mismos nombres tanto de hojas como de columnas, pero estos archivos, los
quiero especificar, en celtras, los rangos a copiar en cada uno de
los archivos
van desde el a1:z200<<<<




la verdad es que quizas no vendrian mal algunos detalles mas de tus
intenciones, pero a falta de estos, se me ocurren unas cuantas
posibilidades, entre ellas esta=>

pon en un libro nuevo en la "Hoja1" en a1:c1 los nombres con la ruta
completa de tus archivos y guarda el libro en el directorio donde
quieras guardar tus 'resumenes/compilaciones'


en un modulo normal (en el editor de VBa => menu insertar => modulo a
secas (NO de clase) ) de este lbro copia/pega este codigo y prueba a
ver que tal


''--copia desde aqui
Sub ResumenLibroNuevo()
Dim n As Byte, i As Integer, Nombre As String
With ThisWorkbook
Nombre = "Resumen_" & Format(Now, "d-mmm-yy_hmmss")
Application.ScreenUpdating = False
For n = 1 To 3
Select Case n
Case 1: Workbooks.Add .Worksheets("Hoja1").Cells(1, n).Value
ActiveWorkbook.SaveAs .Path & "\" & Nombre & ".xls"
Case Else
Workbooks.Open .Worksheets("Hoja1").Cells(1, n).Value
With ActiveWorkbook
For i = 1 To .Worksheets.Count
With Worksheets(i)
.Range("a2:z200").Copy Workbooks(Nombre) _
.Worksheets(.Name).Range("a" & .Rows.Count) _
.End(xlUp).Offset(1)
Workbooks(Nombre).Worksheets(.Name).Columns.AutoFit
End With
Next
.Close True
End With
End Select
Next
Workbooks(Nombre).Save
End With
End Sub''-copia hasta aqui -



un saludo
Ivan




Respuesta Responder a este mensaje
#5 Ivan
26/01/2008 - 21:58 | Informe spam
hola Juan,

Perdon por no poner mas detalle en correo anterior;<<<







espero no te molestes, pero me temo que, al menos desde mi punto de
vista, no solo es que pusiieras pocos detalles, es que la consulta era
[casi] totalmente diferente


de todas formas, no se si es que el tema va por uno derroteros que se
me escapan (consultas a bases de datos con ado o similar)o es que a lo
mejor estoy un poco espeso, pero al menos en mi caso, la consulta
queda todavia mas confusa. Creo que no acabo de comprender ninguno de
los enunciados que publicas =>

1ª) >>> se busca realizar una consulta en base a ciertos datos
capturados en celdas
b2:b7 (listas de datos que se han capturado en los archivos detalle),<<<<



¿que entiendes por 'consulta en base a ciertos datos'? ¿obtener solo
los registros coincidentes? y si fuese asi ¿coincidentes en que
campos?

por otra parte si los datos de b2:b7 'ya' se han capturado en los
'archivos detalle', no acabo de ver lo que quieres hacer que no
hubieses podido hacer durante la 'captura'

2ª) >>> mismos que estoy utilizando para obtener una clave unica,<<<

aqui la verdad es que no se que comentar ¿una clave unica en 5 celdas
para 600 (casi) registros? como supongo que no es esto, no me imagino
a que puedes referirte

3º) >>> que al conseguir obtener el consolidado de los 3 archivos <<<

tampoco acabo de entender a lo que te refieres con 'consolidado' (pude
ser culpa mia, pues nunca me he puesto a analizar dicho termino en el
contexto de excel)

4º) >>> de una sola hoja<<<

¿cada uno de los tres archivos tiene solo una hoja?

5º) >>> en particular de cada archivo, a una sola hoja<<<

¿a una hoja por archivo? si es asi, entonces ¿a tres hojas diferentes?

6º) >>>, agregandole una columna con los campos consulta
seleccionados, para establecer tambien
la clave unica.<<<



aqui me remitiria a las dudas del punto 2º

7º) >>> mostrar los registros que cumplan con la consulta o clave
unica de consulta,<<<

la verdad es que aqui, lo que me da la impresion es lo que te
comentaba en el punto 1º, que lo que realmente quieres hacer es
obtener (en los 3 archivos) los registros que coincidan con lo
introducido en b2:b7, o sea una especie de filtro. Aun siendo asi,
tampoco acabo de verlo. Tampoco su tratamiento posterior

disculpame si a lo mejor es que no estoy viendo algo evidente y el no
poder ayudarte, pero creo que convendria (tanto para mi como [creo
que] para cualquier otro, que expusieras mas claramente lo que
quieres hacer, usando para ello 'terminos de excel', es decir, rangos
de la/s lista/s con los que trabajar las diferentes opciones que
planteas (pej: 'a1:a200' que comentabas en tu primer post, buscar en
la columna 'C', añadir una nueva hoja con el 'consolidado' en tal
archivo, o añadir los registros en tal sitio, y/o cualquier cosa que
pueda ayudar a que, desde este lado, 'veamos' tu/s archivo/s lo mas
parecido posible a como son en realidad

bueno, lo dicho, siento no ser de gran ayuda y espero que alguien haya
sabido entender tus detalles

un saludo
Ivan
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida