Retroceder   Foro Ayuda Excel > Dudas y consultas sobre Excel > Macros y programación VBA
Registrarse Preguntas Frecuentes Lista de Foreros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
LinkBack Herramientas Desplegado
  #1  
Antiguo 08/07/08, 14:44:09
Principiante
 
Usuario desde: jul 2008
Versión de Excel: Excel 2003
Conectado desde: España
Mensajes: 2
Predeterminado Coger datos de varios libros

Wuenas,

he recopilado informacion de Internet, informacion que se ha convertido en archivos Excel. Cada uno correspondiente a una direccion.

Mi problema resulta que necesito TODA esa informacion recopilada en una SOLA hoja. No me sirve para nada tener varios libros.

Tengo que coger los datos de varias celdas y llevarmelos a un nuevo libro. Eso lo puedo hacer a traves de codigo VBA.Pero mi problema es que el codigo que tengo sirve para recopilar datos de las diferentes hojas de un mismo libro, NO de una hoja de varios libros.

Entonces si algun@ tiene una solucion que ofrecer, estoy abierto a cualquier sugerencia.

Gracias
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #2  
Antiguo 09/07/08, 02:13:40
Gran participante
 
Usuario desde: may 2008
Versión de Excel: Excel 2007
Conectado desde: Colombia
Mensajes: 685
Predeterminado

Que tal si desde el momento que la tomas de Internet la pones en diferentes hojas pero de un mismo libro.
__________________
Cordial saludo a todos desde Pereira Colombia
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #3  
Antiguo 09/07/08, 05:55:30
Moderator
 
Usuario desde: jun 2008
Versión de Excel: Excel 2003
Conectado desde: Colombia
Mensajes: 61
Contactar con Efasor a través de MSN
Predeterminado Necesita Trabajo...

Hola tu problema no es tan terrible pero si se necesitará algo de trabajo.

Yo lo haría así:

Si no lo has hecho mueve todos tus libros a una misma carpeta y espero ademas que le hallas puesto nombres inteligibles (aunque esto no es tan importante).

1)Crea un nuevo libro en esa carpeta.

2)En una hoja has la lista de los nombres de libros a abrir en una columna.
Digamos A:A

3) Ahora por medio de un bucle chiquito voy abriendo cada libro y ejecuto tu macro, cuidando de a que libro hago referencia, es decir, en cual leo y en cual escribo.

4) Me tomo un merecido descanso...

Bueno lo de abrir cada libro lo haces asi:

Código:
....

Inicia Bucle

NombreArchivo = El nombre del archivo quieres abrir

set MiLibro = workbooks.Open(NombreArchivo)  

...
El código para ejecutar tu macro...

...

MiLibro.close

Termina Bucle

Bueno trata con esto y cualquier cosa no dudes en preguntar, como te dije requerirá trabajo.
__________________
Aquel que pregunta es un tonto por cinco minutos, pero el que no pregunta permanece tonto por siempre.
http://vbaycpp.blogspot.com/
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #4  
Antiguo 09/07/08, 19:28:25
Principiante
 
Usuario desde: jul 2008
Versión de Excel: Excel 2003
Conectado desde: España
Mensajes: 2
Predeterminado

Gracias, pero abrir casi 7.000 archivos uno tras otro es lo que intento evitar.

He encontrado un codigo que me va PERO tengo problema con la parte referente a la hoja
Cita:
Sub Summary_cells_from_Different_Workbooks_1()
Dim FileNameXls As Variant
Dim SummWks As Worksheet
Dim ColNum As Integer
Dim myCell As Range, Rng As Range
Dim RwNum As Long, FNum As Long, FinalSlash As Long
Dim ShName As String, PathStr As String
Dim SheetCheck As String, JustFileName As String
Dim JustFolder As String

ShName = "estomejode" '<---- Change"
Set Rng = Range("d3,d5,d8,d9,d10") '<---- Change

'Select the files with GetOpenFilename
FileNameXls = Application.GetOpenFilename(filefilter:="Excel Files, *.xl*", _
MultiSelect:=True)

If IsArray(FileNameXls) = False Then
'do nothing
Else

With Application
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With

'Add a new workbook with one sheet for the Summary
Set SummWks = Workbooks.Add(1).Worksheets(1)

'The links to the first workbook will start in row 2
RwNum = 1

For FNum = LBound(FileNameXls) To UBound(FileNameXls)
ColNum = 1
RwNum = RwNum + 1
FinalSlash = InStrRev(FileNameXls(FNum), "\")
JustFileName = Mid(FileNameXls(FNum), FinalSlash + 1)
JustFolder = Left(FileNameXls(FNum), FinalSlash - 1)

'copy the workbook name in column A
SummWks.Cells(RwNum, 1).Value = JustFileName

'build the formula string
JustFileName = WorksheetFunction.Substitute(JustFileName, "'", "''")
PathStr = "'" & JustFolder & "\[" & JustFileName & "]" & ShName & "'!"

On Error Resume Next
SheetCheck = ExecuteExcel4Macro(PathStr & Range("A1").Address(, , xlR1C1))
If Err.Number <> 0 Then
'If the sheet not exist in the workbook the row color will be Yellow.
SummWks.Cells(RwNum, 1).Resize(1, Rng.Cells.Count + 1) _
.Interior.Color = vbYellow
Else
For Each myCell In Rng.Cells
ColNum = ColNum + 1
SummWks.Cells(RwNum, ColNum).Formula = _
"=" & PathStr & myCell.Address
Next myCell
End If
On Error GoTo 0
Next FNum

' Use AutoFit to set the column width in the new workbook
SummWks.UsedRange.Columns.AutoFit

MsgBox "The Summary is ready, save the file if you want to keep it"

With Application
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
End With
End If
End Sub
Cada libro me ha puesto el nombre del archivo en el nombre de la hoja..
La solucion es encontrar como hacer que donde pongo "estomejode" ponga el nombre de la hoja corelativamente. Ya que mis archivos se llaman todos igual seguido de un numero (para facilitar las cosas, claro)

Algun@ tiene una idea ? que no me deja con el asterisco, no me sirve de nada poner "estomejode*"

La unica solucion que le veo es poner el mismo nombre a la 1º hoja, Hoja1, como viene por defecto cuando abres un libro nuevo. Pero ahi tengo otro problema el tener que hacerlo UNO A UNO. Es que es una gran cantidad de libros. Alguna idea??

Gracias

Última edición por Ramon fecha: 10/07/08 a las 09:30:08.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
  #5  
Antiguo 11/07/08, 01:48:08
Moderator
 
Usuario desde: jun 2008
Versión de Excel: Excel 2003
Conectado desde: Colombia
Mensajes: 61
Contactar con Efasor a través de MSN
Predeterminado Correlativamente?

Hola no te entendí lo que necesita en especial lo de correlativamente, si lo que necesitas es un arreglo con los nombres esto te sale muy fácilmente con un FileDialog y la coleccion selecteditems del mismo.

application.FileDialog(TipodeDialogo) esto te devuelve un objeto filedialog que tiene entre otras la colección selecteditems, la cual contiene los nombres de todos los archivos que hallas seleccionado, haces un bucle y el resto es carpintería....Claro esta si te entendi lo que quieres sino se un poquito más explicito y con gusto te tratare de ayudar en lo que pueda...bye.
__________________
Aquel que pregunta es un tonto por cinco minutos, pero el que no pregunta permanece tonto por siempre.
http://vbaycpp.blogspot.com/
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Responder Con Cita
Respuesta


Herramientas
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Trackbacks are habilitado
Pingbacks are habilitado
Refbacks are habilitado



La franja horaria es GMT +2. Ahora son las 15:49:56.


© Ayuda Excel

Search Engine Friendly URLs by vBSEO 3.1.0 ©2007, Crawlability, Inc.

1 2 3 4 5 6 7