Macro para buscar datos
Hola experto tengo la siguiente macro para buscar un dato en varios libros que se encuentran en una carpeta determinada, pero no logro hacer que funcione, y de ser así que solo busque el dato y me lo copie en una celda x(por ejemplo en el rango b3) .
Sub BusqVsFiles()
Dim MiCarpeta As String, MisArchivos As String, MiClave As String
MiCarpeta = Trim(Sheets("INICIO").Range("C7").Value) & IIf(Right(Trim(Sheets("INICIO").Range("C7").Value), 1) = "\", "", "\")
MisArchivos = Trim(Sheets("INICIO").Range("C8").Value)
MiClave = Trim(Sheets("INICIO").Range("C9").Value)
aBuscar = Trim(Sheets("INICIO").Range("C10").Value)
encontr = False
With Application.FileSearch
.LookIn = MiCarpeta
.SearchSubFolders = True
.Filename = MisArchivos
If .Execute(SortBy:=msoSortByFileName, SortOrder:=msoSortOrderAscending) > 0 Then
For i = 1 To .FoundFiles.Count
DirFile = .FoundFiles(i)
Workbooks.Open Filename:=DirFile, UpdateLinks:=False, Password:=""
Application.Calculation = xlManual
ActiveWorkbook.Unprotect Password:=MiClave
'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'
'* TAREA A EFECTUAR en archivo: BUSCAR DATO EN TODOS LOS ARCHIVOS *'
'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'
For sht = 1 To Sheets.Count
Sheets(sht).Select
Set c = Cells.Find(aBuscar, LookIn:=xlValues)
If c Is Nothing Then
encontr = False
Next i
If encontr = False Then MsgBox "El valor " & aBuscar & "no fue encontrado en los " & i - 1 & " archivos revisados", vbCritical, "NO ESTA, (parece)"
Else
MsgBox "Su búsqueda de " & aBuscar & " no obtubo resultados ", vbInformation, "Info No Encontrada!!!"
Application.DisplayAlerts = False
ActiveWorkbook.Close
Windows("Busca Archivos 2").Activate
Sheets("INICIO").Select
Set c = Nothing
Exit Sub
Else
encontr = True
c.Select
MsgBox "Su búsqueda de " & aBuscar & " fue exitosa ", vbInformation, "Info Encontrada!!!"
Exit Sub
End If
Next
Set c = Nothing
'==========================================================================
' FIN tarea en archivo
'==========================================================================
Next i
If encontr = False Then MsgBox "El valor " & aBuscar & "no fue encontrado en los " & i - 1 & " archivos revisados", vbCritical, "NO ESTA, (parece)"
Else
MsgBox "No se encontró ningún archivo " & MisArchivos & " en " & Chr(10) & MiCarpeta
End If
End With
End Sub
Sub BusqVsFiles()
Dim MiCarpeta As String, MisArchivos As String, MiClave As String
MiCarpeta = Trim(Sheets("INICIO").Range("C7").Value) & IIf(Right(Trim(Sheets("INICIO").Range("C7").Value), 1) = "\", "", "\")
MisArchivos = Trim(Sheets("INICIO").Range("C8").Value)
MiClave = Trim(Sheets("INICIO").Range("C9").Value)
aBuscar = Trim(Sheets("INICIO").Range("C10").Value)
encontr = False
With Application.FileSearch
.LookIn = MiCarpeta
.SearchSubFolders = True
.Filename = MisArchivos
If .Execute(SortBy:=msoSortByFileName, SortOrder:=msoSortOrderAscending) > 0 Then
For i = 1 To .FoundFiles.Count
DirFile = .FoundFiles(i)
Workbooks.Open Filename:=DirFile, UpdateLinks:=False, Password:=""
Application.Calculation = xlManual
ActiveWorkbook.Unprotect Password:=MiClave
'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'
'* TAREA A EFECTUAR en archivo: BUSCAR DATO EN TODOS LOS ARCHIVOS *'
'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'*'
For sht = 1 To Sheets.Count
Sheets(sht).Select
Set c = Cells.Find(aBuscar, LookIn:=xlValues)
If c Is Nothing Then
encontr = False
Next i
If encontr = False Then MsgBox "El valor " & aBuscar & "no fue encontrado en los " & i - 1 & " archivos revisados", vbCritical, "NO ESTA, (parece)"
Else
MsgBox "Su búsqueda de " & aBuscar & " no obtubo resultados ", vbInformation, "Info No Encontrada!!!"
Application.DisplayAlerts = False
ActiveWorkbook.Close
Windows("Busca Archivos 2").Activate
Sheets("INICIO").Select
Set c = Nothing
Exit Sub
Else
encontr = True
c.Select
MsgBox "Su búsqueda de " & aBuscar & " fue exitosa ", vbInformation, "Info Encontrada!!!"
Exit Sub
End If
Next
Set c = Nothing
'==========================================================================
' FIN tarea en archivo
'==========================================================================
Next i
If encontr = False Then MsgBox "El valor " & aBuscar & "no fue encontrado en los " & i - 1 & " archivos revisados", vbCritical, "NO ESTA, (parece)"
Else
MsgBox "No se encontró ningún archivo " & MisArchivos & " en " & Chr(10) & MiCarpeta
End If
End With
End Sub
1 Respuesta
Respuesta de Elsa Matilde
1