Macro excel 2007 para concatenar la misma celda de varios libros de una carpeta

Tiempo sin hablarnos, espero contar con tu ayuda para solucionar esta duda. Tengo la necesidad de concatenar el texto de la celda cx54 de una hoja de nombre "1" que está presente en todos los archivos que están dentro de una carpeta, misma que puede contener un número indeterminado de archivos de excel contenidos. Entonces lo que requiero es que la macro me permita desde un archivo principal que esta fuera de esa carpeta, llamar cada uno de los libros que encuentre en esa carpeta definida, y extraiga de todos y cada uno de los libros, de su hoja de nombre "1", todos los textos que estén contenidos en la celda cx54 y los concatene en el libro desde donde ejecuto la macro. Es una macro que responde a un número indefinido de archivos en la carpeta.

1 Respuesta

Respuesta
1

Te anexo la macro, el resultado te lo va a poner en la hoja en donde ejecutes la macro en la celda D5.

Cambia en la macro "c:\trabajo\fichas\", por la carpeta en donde tengas los archivos.

Sub LeerArchivos()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    '
    Set l1 = ThisWorkbook
    Set h1 = l1.Sheets(1)
    '
    ruta = "c:\trabajo\fichas\"
    arch = Dir(ruta & "*.xls*")
    '
    Do While arch <> ""
        On Error Resume Next
        Set l2 = Workbooks.Open(ruta & arch)
        If Err.Number = 0 Then
            cad = cad & " " & l2.Sheets("1").[CX54]
            l2.Close True
        End If
        arch = Dir()
    Loop
    '
    Application.ScreenUpdating = True
    h1.[D5] = cad
    MsgBox "Terminado"
End Sub

S a l u d o s . D a n t e   A m o r

Recuerda valorar la respuesta.

Dante muchas gracias, siento informarte que corro la macro pero no hace absolutamente nada. corregí las celdas de referencia, es decir arranco copiando de la cx46 y al final defino que debe llevarse a cx46 al nuevo libro pero no ejecuta nada. No entiendo que puede ser lo que sucede. agradezco pudieras retomar el caso y confirmarme se existe algo que falte para que funcione.

Si modificaste la macro, escribe cómo la dejaste para revisarla.

Así pediste la macro, así funciona la macro.

- En un libro1 tienes que poner la macro.

- En la hoja1 del libro1 donde corras la macro en la celda D5 se va a poner el resultado.

- Tienes que cambiar la carpeta en esta línea de la macro

"c:\trabajo\fichas\"

Revisa el nombre de la carpeta (espacios, acentos y al final debes poner la diagonal \ )

La macro lee los libros en esa carpeta, toma el dato de la celda CX54 y lo va concatenado. Al final pone la cadena en la celda D5.

Revisa los dato, tal y como te lo estoy explicando, si la macro funciona, no olvides valorar la respuesta.

¡Gracias! Funcionó perfecto. Tenias razón era un problema en la ruta. Agradezco me puedas ayudar con otra consulta que dejé de vba excel 2007 respecto a cómo en un formulario vba a partir de la escritura de caracteres de un textbox, puedo filtrar de una lista de archivos de excel de una carpeta, aquellos archivos que cumplan con los caracteres registrados paulatinamente en el textbox,  visualizar estos archivos filtrados en un listbox en multiselect y despues de filtrarlos, seleccionarlos del listbox y copiarlos en otra carpeta. 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas