Copiar la misma celda de 13000 archivos excel en una tabla

Buenos días:

Tengo una carpeta con 13000 archivos excel numerados "1-2011 SC.xls", "2-2011 SC.xls" etc, en los que la numeración es la misma pero las dos últimas letras del final cambian a veces. El problema es que, de esos archivos necesito recuperar la celda F30 de todos ellos y copiarla en una tabla en el mismo orden o, si no es en el mismo orden, que al menos me digan de qué archivo procede.

Lo he escribiendo la ruta y cambiando el número del archivo por una variable, pero parece que no la reconoce porque me abre un cuadro para que seleccione la ruta y hacer eso 13.000 veces es un poco complicado.

Básicamente necesitaría que alguien me explicara cómo hacer una macro que abra uno a uno todos los archivos de la carpeta "Facturas 2011" y copie el valor de la celda F30 uno debajo del otro en el mismo orden o indicando a qué archivo se refiere.

La ruta con la que consigo que me devuelva el valor de dicha celda es:

='Y:\ARCHIVOS\FACTURAS\EMITIDAS 2011\[3-2011 SC.xls]FACTURA'!$F$30

Eso, poniéndolo en una celda de excel me devuelve el valor que necesito, pero si arrastro hacia abajo sólo me repite lo mismo y tendría que ir cambiando "3-2011 SC.xls" por "4-2011 SC.xls" a mano, por lo que, siendo 13.000 archivos, no me sirve demasiado.

Rogaría alguna idea o alguna forma de hacerlo.

Muchísimas gracias de antemano.

1 Respuesta

Respuesta
1

Ok. Aca el macro:

Sub Listar_Archivos()
Dim i As Integer
Dim p As String
Dim ss As String
'4c7569735f50
p = "C:\prueba\"
ChDir "c:\"
ChDir p
Range("A:a").Clear
ss = Dir(p, vbArchive)
Range("A1") = "=+'" & p & "[" & ss & "]" & "FACTURAS'!$F$30"
Do Until (Err.Number > 0)
On Error Resume Next
If Err.Number > 0 Then Exit Do
i = Application.WorksheetFunction.CountA(Range("A:A")) + 1
Range("A" & i) = "=+'" & p & "[" & Dir & "]" & "FACTURAS'!$F$30"
DoEvents
Loop
MsgBox "Finalizado", vbInformation
End Sub

debes cambiar estas lineas

p = "C:\prueba\"
ChDir "c:\"

A p le asignas el path de tu carpeta y a chdir la letra de la unidad

Luego lo corres, el macro pondra en la columna A los datos de la celda f30 de cada libro existente en ese path ( en relidad el link)

Buenas tardes:

Antes de nada agradecer enormemente la ayuda que me estás prestando porque si consigo hacer esto me facilitaría muchísimo mi trabajo.

He hecho lo que me has dicho, he copiado la macro y sustituído los datos por los de mi carpeta y el ChDir por la unidad, pero al ejecutarlo me salta el siguiente error:

"Se ha producido el error '1004' en tiempo de ejecución

Error definido por la aplicación o el objeto"

Y cuando le doy a Depurar me señala en amarillo la siguiente línea de código:

Range("A1") = "=+'" & p & "[" & ss & "]" & "FACTURAS'!$F$30"

Siento no poder aportar nada pero no entiendo en absoluto con mis pocos conocimientos lo que quiere decir esa línea.

Gracias!!!!!!!

Range("A1") = "=+'" & p & "[" & ss & "]" & "FACTURAS'!$F$30"

Puse facturas como nombre de las hojas de tus libros pero me di cuenta que es factura asi en singular, prueba

Range("A1") = "=+'" & p & "[" & ss & "]" & "FACTURA'!$F$30"

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas