Tengo distintos libros con muchos datos, entre ellos, domicilios, telefonos, nombres, dnis, etc.
Mi trabajo consiste en ahora crear una especie de buscador en todos estos archivos y me devuelva todos los registros de cada libro en donde aparece almenos una vez en alguna de las celdas la palabra buscada.
Estoy lo estoy haciendo con una macro en excel con conexiones ADOs, y les mi idea a hacer..
Código:
Sub Importar_Excel() Dim i As Integer Dim libro() As String i = 0 ' aca se van a ir guardando todas las direcciones de los archivos que yo vaya eligiendo 1: If MsgBox("Desea ingresar algun archivo?", vbOKCancel) <> vbCancel And i < 10 Then redim libro(i) as string libro(i) = Application.GetOpenFilename i = i + 1 GoTo 1: Else GoTo 2: End If 2: ' aca se hace el proceso para todos los elementos del array libro for j = 0 to ubound(libro) step 1 Dim conexion As ADODB.Connection, rs As ADODB.Recordset Set conexion = New ADODB.Connection conexion.Open "Provider=Microsoft.ACE.OLEDB.12.0;" & _ "Data Source=" & libro(j) & _ ";Extended Properties=""Excel 12.0;HDR=Yes;""" ' Nuevo recordset Set rs = New ADODB.Recordset With rs .CursorLocation = adUseClient .CursorType = adOpenStatic .LockType = adLockOptimistic End With rs.Open "SELECT * FROM [hoja1$]", conexion, , , adCmdTxt If Cells(2, 1).Value <> "" Then Cells(2, 1).End(xlDown).CopyFromRecordset rs Else Cells(2, 1).CopyFromRecordset rs End If Next End Sub
la verdad que no tengo mucha experiencia con conexiones ADO, y queria saber si esto viene bien o si alguien se le ocurre algo mejor bienvenido sea :)
ahh ,, y que me explique porque me tira un error en la linea del Data Source