Buenas gente,, estoy con un tema ya hace rato tratando de sacarlo pero no hay chance, a ver si a alguien se le ocurre algo
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