Hola! Me presento mi nombre es javier y soy de buenos aires, Argentina.
Me encargaron hacer una macro en mi trabajo la cual debe abrir un directorio especifico y por cada archivo que abra de ese directorio buscar una palabra (en este caso la palabra seria ROFO),Cuando encuentre esa paklbara debe copiar todos los datos de las columnas en donde figura esa palbra a una archivo (consolidado).
Y asi con todos los archivos que vaya abriendo, que los vaya poniendo unos abajo del otro.
Estoy teniendo varios problemas con esto debido a que toda la info que encunetro me dice como abrir datos pero no como buscar una celda con una palabra especifica y copiarlos.
SAgradeceria mucho su ayuda.
Muchas gracias
- - - - - Mensaje combinado - - - - -
eL CODIGO QUE EMPEZE A PROGRAMAR ES EL SIGUIENTE
Sub LasCarpetas()
'Busca en una Carpeta del sistema y sus subcarpetas todos los archivos de Excel y los abre
Dim NombreCarpeta As String
NombreCarpeta = "C:\Users\310116752\Desktop\SIMULADORES 2\TODOS LOS SIMULADORES" 'Colocar la carpeta inicial
Call ShowFolderList(NombreCarpeta)
End Sub
Sub ShowFolderList(LaCarpeta As String)
Dim NombreSubCarpeta As String
Set FileSys = CreateObject("Scripting.FileSystemObject")
Set Folder = FileSys.GetFolder(LaCarpeta) ' Asigna la carpeta a la variable Folder
Set ListaCarpetas = Folder.Subfolders ' Asigna la lista de Subcarpetas a la variable ListaCarpetas
Set ListadoArchivos = Folder.Files ' Asigna la lista de Archivos a la variable ListadoArchivos
For Each Archivo In ListadoArchivos
If InStr(1, Archivo.Name, ".xls", vbTextCompare) Then
Call ShowFolderList(NombreSubCarpeta) 'Procedimiento recursivo, se llama a si mismo para hacer
Next Subcarpeta 'la verificación en las subcarpetas
End Sub
este codigo pega un rango determinado lo que no se hacer es como pedirle a la macro que copie una columna cuando aparezca el texto "tal" y que lo pegue en el archivo consolidado.
Muchas gracias
Featured Replies
Archivado
Este tema está ahora archivado y está cerrado a más respuestas.
Hola! Me presento mi nombre es javier y soy de buenos aires, Argentina.
Me encargaron hacer una macro en mi trabajo la cual debe abrir un directorio especifico y por cada archivo que abra de ese directorio buscar una palabra (en este caso la palabra seria ROFO),Cuando encuentre esa paklbara debe copiar todos los datos de las columnas en donde figura esa palbra a una archivo (consolidado).
Y asi con todos los archivos que vaya abriendo, que los vaya poniendo unos abajo del otro.
Estoy teniendo varios problemas con esto debido a que toda la info que encunetro me dice como abrir datos pero no como buscar una celda con una palabra especifica y copiarlos.
SAgradeceria mucho su ayuda.
Muchas gracias
- - - - - Mensaje combinado - - - - -
eL CODIGO QUE EMPEZE A PROGRAMAR ES EL SIGUIENTE
Sub LasCarpetas()
'Busca en una Carpeta del sistema y sus subcarpetas todos los archivos de Excel y los abre
Dim NombreCarpeta As String
NombreCarpeta = "C:\Users\310116752\Desktop\SIMULADORES 2\TODOS LOS SIMULADORES" 'Colocar la carpeta inicial
Call ShowFolderList(NombreCarpeta)
End Sub
Sub ShowFolderList(LaCarpeta As String)
Dim NombreSubCarpeta As String
Set FileSys = CreateObject("Scripting.FileSystemObject")
Set Folder = FileSys.GetFolder(LaCarpeta) ' Asigna la carpeta a la variable Folder
Set ListaCarpetas = Folder.Subfolders ' Asigna la lista de Subcarpetas a la variable ListaCarpetas
Set ListadoArchivos = Folder.Files ' Asigna la lista de Archivos a la variable ListadoArchivos
For Each Archivo In ListadoArchivos
If InStr(1, Archivo.Name, ".xls", vbTextCompare) Then
Workbooks.Open (Folder & "/" & Archivo.Name)
End If
ActiveWorkbook.Sheets("PIVOT").Activate
Range("A2").Select
Range(ActiveCell, ActiveCell.Offset(0, 22)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
ThisWorkbook.Activate
Sheets("bamba").Select
Range("A2").Select
ActiveSheet.Paste
Range("A2").Select
Selection.Copy
ActiveSheet.Paste
Workbooks(Folder & "/" & Archivo.Name).Close , False ------------------- Aqui me tira error, pretendo que cierre el libro que abrio
Next Archivo
For Each Subcarpeta In ListaCarpetas
NombreSubCarpeta = Folder.Path & "" & Subcarpeta.Name
Call ShowFolderList(NombreSubCarpeta) 'Procedimiento recursivo, se llama a si mismo para hacer
Next Subcarpeta 'la verificación en las subcarpetas
End Sub
este codigo pega un rango determinado lo que no se hacer es como pedirle a la macro que copie una columna cuando aparezca el texto "tal" y que lo pegue en el archivo consolidado.
Muchas gracias