Cémo utilizar VBA para importar datos
de Excel a Access
Después del parén obligado por Navidad volvemos con nuestro blog, hoy lo
dedicamos a aprender mas cosas sobre Excel, recuerda que si te ha gustado lo
que has leido compartelo!! Este articulo ha sido extraido de nuestro curso
“Excel avanzado y programacion VBA”, el cual lo puedes consultar pinchando
aqui.
Aprender a utilizar Visual Basic para aplicaciones para importar datos a
Access puede hacer que su aplicacién de base de datos més dinamico. En VBA ,
puede utilizar una combinacién de objetos para abrir un Libro de Excel
existente e importar algunos datos a una tabla de Access. Utilice la
biblioteca de objetos de Microsoft Excel en VBA para abrir el libro . EL
objeto Recordset se utiliza para abrir una tabla existente en el acceso y
guardar los datos de Excel en el mismo. Usando VBA para importar datos puede
reducir significativamente la cantidad de tiempo que pasa la importacién de
datos de forma manual.
Instrucciones:
1. Abrimos Microsoft Office Excel y escribimos " datosl "en A2, y " data2 ”
en B2 . Pulsamos la tecla
trl” y"§” para abrir el “Guardar como”
ventana de didlogo y guardamos el libro en “C: \\ Temp \\ "as
DataToInport. xlsx
2. Abrimos Microsoft Office Access , hacemos clic en “Base de datos en blanco
"y clic en el botén “Crear” . Hacemos clic en ” Herramientas de base de
datos” y posteiormente clic en "Visual Basic” para abrir la ventana del
editor de VB hacemos clic en el menii " Insertar” y luego clic en ” médulos”
para insertar un nuevo médulo de cédigo. Hacemos clic en el menti
Herramientas"-> “Referencias “, y marcamos la casilla junto a” biblioteca de
objetos de Microsoft
3. Ahora escribimos el siguiente cédigo de VBA crear nuevo procedimiento subimport€xcelData sub Private ()
4. Escribimos lo siguiente para crear variables que va a utilizar para leer
Excel :
Dim xlApp En Excel . Aplicacién
XUBk As Excel.Workbook
xlSht As Excel.Worksheet
5. Escribimos lo siguiente para crear variables que va a utilizar en Access :
dbRst As Recordset
Dim dbs como base de datos
sqlstr dévil como secuencia
6. Escribimos lo siguiente para definir los objetos de base de datos , asi
como definir el Excel Libro de usar:
Set dbs = CurrentDb
Set xlApp = Excel. Application
Establecer x1Bk = xLApp.Workbooks.Open (“C: \\ temp \\ dataToInport.xlsx ” )
Set xlsht = xlBk.Sheets ( 1)
7. Creamos una nueva tabla con dos columnas en Access para importar datos de
Excel. Escribimos el siguiente cédigo de VBA para crear la tabla utilizando
el objeto ” Docmd “:
sqlstr =” CREATE TABLE Exceldata ( columnOne TEXTO, TEXTO columTwo ) ”
Dotmd.SetWarnings
False < p> DoCmd.RunSQL ( sqlstr )
8. Abrimos la tabla que acabamos de crear mediante el uso de un objeto de
conjunto de registros y escribimos lo siguiente para abrir la table y agregaruna nueva fila
Set dbRst = dbs.OpenRecordset ( ” Exceldata ” )
dbRst . AddNew
9. Escribimos lo siguiente para obtener los valores del libro de Excel,
quardarlos y actualizar el registro:
xlsht.Range ( “A2") Seleccione
dbRst. Fields
(0) Value. = xlsht.Range (” A2” ) . Valor
xisht.Range ( " B2.") . Seleccione
dbRst.. Fields
(1) . Valor = xtsht.Range ("82") . Valor
dbRst Update
10. Para finalizar el procedimiento, escribimos el siguiente cédigo de VBA :
dbRst Close
dbs .Close
x1Bk. Close
End Sub
11. Presionamos “F5 " para ejecutar el procedimiento
Cémo utilizar Excel VBA para imprimir
Millones de propietarios de pequefias empresas y emprendedores de todo el
mundo utilizan Microsoft Excel pare ayudar con las tareas comunes decontabilidad, previsién e inventario. Con las herramientas integradas de
Excel, es relativamente simple enviar una hoja de calculo o un cuadernillo de
trabajo a alguien en un correo electrénico como archivo adjunto. Sin embargo,
hay muchas veces que nada supera una copia con la informacién. Por supuesto,
puedes usar la opcién del meni “Archivo | Imprimir” en la barra de cinta para
crear versiones impresas de la hoja de célculo. Sin embargo, mediante el uso
de Visual Basic para Aplicaciones o VBA, también puedes crear macros o
botones de comando para realizar diversas tareas de impresién en Excel mucho
mas répido y mas eficientemente
Activa la pestafa Programador
1, Inicia Microsoft Excel y abre el Libro o plantilla en la que deseas
programar funciones de impresién con VBA. Haz clic en “Archivo” en la cinta
de Excel y luego en “Opciones”.
2. Localiza y haz clic en el encabezamiento “Personalizar cinta de opciones”
en el panel izquierdo de la ventana “Opciones de Excel”. Haz clic en la
casilla de verificacién junto a “Programador” en la seccién de Pestafias
principales bajo la etiqueta “Personalizar la cinta de opciones”.
3. Haz clic en el botén “Aceptar” para activar la pestafia “Programador” de la
cinta y cerrar la ventana “Opciones de Excel”. Después de hacerlo Excel
mostrara la pestafia “Programador” en la cinta de forma automatica
Crea un botén de impresién con VBA
1. Haz clic en la pestafia “Programador” de la cinta. Haz clic en el icono
“Insertar” de la flecha hacia abajo en la seccién de “Controles” de la
pestafia “Programador”, Oprime el icono “Botén de control” bajo “Controles de
formulario”.
2. Haz clic en la celda de la hoja de célculo en la que deseas colocar un
botén de impresién. Después de hacer clic selecciona una celda, la ventana
“Asignar macro” apareceré automaticamente.
3. Ingresa “PrintCurrentSheet” o algo similar en el campo “Nombre de macro”.
No uses espacios en el nombre. Haz clic en botén “Nuevo”. La ventana del
editor de Visual Basic para Aplicaciones aparecera y mostraré una nuevaventana de cédigo.
4. Coloca el cursor del ratén en la Linea de espacio entre los valores
“PrintCurrentSheet Sub ()” y “End Sub’
ActiveSheet. Printout
Escribe el siguiente comando:
5. Haz clic en el icono de disquete en la barra de herramientas del editor de
VBA para guardar el cédigo. Cierra la ventana del editor de VBA.
6. Haz clic con el botén derecho sobre el nuevo botén de comando y resalta el
valor de texto predeterminado “Boton 1". Cambia el texto de la etiqueta del
botén a “Impresién rapida” u otro nombre descriptivo
7. Haz clic en el botén nuevo de comando. Excel imprime la hoja de célculo
activa en la impresora predeterminada de Windows sin mostrar el cuadro de
didlogo “Imprimir” normal.