Crear excel con campos de otros documentos
Hola a todos,
tengo un excel, con una tabla, la qual necesito que se llene, con valores que tengo en otros documentos. Son 50 documentos de los cuales he de coger 2 campos i guardarlos en dicha tabla.
Hay alguna macro que me abra dicho documentos, de una forma correlativa i que me lea dichos campos i me los guarde en el documento donde tengo la tabla?
Tengo esta solucion
Sub extrae_datos()
Dim m As String
Dim i As Integer
Dim a As String
Dim fila As Long
Dim n As Integer
Application.ScreenUpdating = False
ChDir "C:\"
m = Dir("C:\tu_carpeta\*.xls") ' cambia aca por la direccion de tu carpeta
Range("A" & 1) = m
i = 2
Do Until m = ""
m = Dir
Range("A" & i) = m
i = (i + 1)
DoEvents
Loop
i = 0
'crea referencia
n = Application.WorksheetFunction.CountA(Range("A:A"))
For i = 1 To n
m = Range("A" & i)
Range("b" & i) = "=+'C:\as\[" & m & "]Hoja4'!$A$20"
a = Range("b" & i)
Range("b" & i) = a
Range("c" & i) = "=+'C:\as\[" & m & "]Hoja4'!$A$21"
a = Range("c" & i)
Range("c" & i) = a
Range("A" & i).Clear
Next
Application.ScreenUpdating = True
MsgBox "Terminado", vbInformation
End Sub
Pero los campos tienen que ser A20 i B20, i que se guarden en A1 i B1 de la nueva hoja.... He estado cambiarlo por mi parte pero no lo consigo.
tengo un excel, con una tabla, la qual necesito que se llene, con valores que tengo en otros documentos. Son 50 documentos de los cuales he de coger 2 campos i guardarlos en dicha tabla.
Hay alguna macro que me abra dicho documentos, de una forma correlativa i que me lea dichos campos i me los guarde en el documento donde tengo la tabla?
Tengo esta solucion
Sub extrae_datos()
Dim m As String
Dim i As Integer
Dim a As String
Dim fila As Long
Dim n As Integer
Application.ScreenUpdating = False
ChDir "C:\"
m = Dir("C:\tu_carpeta\*.xls") ' cambia aca por la direccion de tu carpeta
Range("A" & 1) = m
i = 2
Do Until m = ""
m = Dir
Range("A" & i) = m
i = (i + 1)
DoEvents
Loop
i = 0
'crea referencia
n = Application.WorksheetFunction.CountA(Range("A:A"))
For i = 1 To n
m = Range("A" & i)
Range("b" & i) = "=+'C:\as\[" & m & "]Hoja4'!$A$20"
a = Range("b" & i)
Range("b" & i) = a
Range("c" & i) = "=+'C:\as\[" & m & "]Hoja4'!$A$21"
a = Range("c" & i)
Range("c" & i) = a
Range("A" & i).Clear
Next
Application.ScreenUpdating = True
MsgBox "Terminado", vbInformation
End Sub
Pero los campos tienen que ser A20 i B20, i que se guarden en A1 i B1 de la nueva hoja.... He estado cambiarlo por mi parte pero no lo consigo.