Está en la página 1de 1

Importar celdas Excel a Excel (ADO) Con ADO podemos conectar con casi cualquier base de datos, incluyendo

Excel mismo. En este ejemplo mostramos como conectar con otro libro Excel desde Excel. Luego importaremos los datos. Todo esto sin abrir el otro libro Excel (la base de datos). La importacin es muy eficaz, tarda poco, y puede ayudar mucho en la automizacin de tus rutinas diarias. Procedimiento Empezamos con un libro Excel vaco. Luego crearemos un mdulo VBA dentro de este libro. En este mdulo escribiremos el cdigo. El libro de las celdas a importar debe tener rtulos en la primera fila, y los datos a partir de la segunda. Sub Conectar_Excel_ADO() 'importar datos de un libro Excel sin abrirlo. 'dimensiones Dim datConnection As ADODB.Connection Dim recSet As ADODB.Recordset Dim recCampo As ADODB.Field Dim strDB, strSQL As String Dim i As Long 'ruta al archivo Excel (la base de datos) 'strDB = ThisWorkbook.Path & "\" & _ "MiArchivoExcel.xls" strDB = "C:\MiArchivoExcel.xls" 'si otra carpeta 'conectar Set datConnection = New ADODB.Connection Set recSet = New ADODB.Recordset datConnection.Open "DRIVER=Microsoft Excel _ Driver (*.xls);" & "DBQ=" & strDB 'consulta SQL 'strSQL = "SELECT * FROM [NuestroRango]" strSQL = "SELECT * FROM [Hoja1$A1:Q1000]" 'abrimos el recordset recSet.Open strSQL, datConnection, adOpenStatic 'copiar datos ActiveSheet.Cells.ClearContents ActiveSheet.Cells(2, 1).CopyFromRecordset recSet 'copiar rotulos (campos) i = 1 For Each recCampo In recSet.Fields ActiveSheet.Cells(1, i) = _ recCampo.Name: i = i + 1 Next recCampo 'desconectar (importante!) recSet.Close datConnection.Close 'cerrar los objetos Set recSet = Nothing Set datConnection = Nothing End Sub

También podría gustarte