Importar datos de una hoja de excel macros
en el siguiente código logro importar datos de otra hoja de excel(.xls), pero ahora necesito importar de un archivo (.xlsm) y reemplazando el tipo de archivo no m funciona, si alguien podría ayudarme.....
Dim strArchivo As String, strSQL As String
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim arrData As Variant
strArchivo = Me.TextBox2
If Me.TextBox1.Text = "" Then
MsgBox "Indicar Código del Proyecto."
Exit Sub
End If
If Me.TextBox2.Text = "" Then
MsgBox "Indicar Ruta del Proyecto."
Exit Sub
End If
j = 1
Do While Not IsEmpty(Sheets("hoja2").Cells(1, j))
If Sheets("hoja2").Cells(1, j) = Me.TextBox1.Text Then
MsgBox "El Código del Proyecto se Encuentra Registrado."
Exit Sub
End If
j = j + 4
Loop
'Comprobamos si el archivo existe en la ruta indicada
If Dir(strArchivo) = "" Then
MsgBox "No existe el archivo en la ruta indicada."
Exit Sub
End If
'Creamos la cedena texto de la consulta SQL
strSQL = "SELECT * FROM [documentos$a2:aa150]"
'Creamos la conexión al archivo
Set cn = New ADODB.Connection
cn.Open "DRIVER={Microsoft Excel Driver (*.xls)};" & _
"DriverIdy0;ReadOnly=True;DBQ=" & strArchivo & ";"
'Extraemos los datos
Set rs = New ADODB.Recordset
rs.Open strSQL, cn, adOpenForwardOnly, _
adLockReadOnly, adCmdText
For i = 1 To 100
If Sheets("hoja2").Cells(2, i).Text = "" Then
Sheets("hoja2").Cells(1, i) = TextBox1.Text
Sheets("hoja2").Cells(1, i + 2) = TextBox2.Text
'Copiamos los datos en la celda destino
ThisWorkbook.Worksheets("hoja2") _
.Cells(2, i).CopyFromRecordset rs
Exit For
End If
Next i
'Cerramos la conexión y vaciamos las variables
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
Unload Me
End Sub