Pasar a excel algunos campos de una consulta / tabla

Disculpen por insistir con el tema, tengo que pasar a una planilla ya establecida de excel, datos puntuales de una tabla/consulta a la planilla que tengo en excel, Le doy un ejemplo:

Tengo en la tabla de access los campos : Id. Producto, fecha, material.

De los cuales los campos a pasar son : Fecha y material, estos datos tienen que ir a la planilla excel a la columna C5 y H8.

Esto es un ejemplo para que se hagan una idea de lo que quiero hacer

2 respuestas

Respuesta
2

Para el ejemplo que pones, si tu archivo de Excel se llama "ExcelDatos.xls" y lo tienes en la misma carpeta que tu BD Access, el código de un botón llamado cmdExportExcel sería:

Private Sub cmdExportExcel_Click()'Declaras las variablesDim fExcel As String 'En fExcel recogeremos la ruta, nombre y extensiónDim xls As Excel.ApplicationDim Columna As Integer'Si tienes el Excel en el mismo directorio de la BD puedes definir la ruta así:fExcel = Application.CurrentProject.Path & "\ExcelDatos.xls"Set xls = CreateObject("Excel.Application")xls.Workbooks.Open fExcelxls.Worksheets("Hoja1").Activate'Exportas la fecha, con formato fechaxls.ActiveSheet.Range("C5").Selectxls.ActiveCell.Value = CDate(Me.Fecha)'Exportas el materialxls.ActiveSheet.Range("H8").Selectxls.ActiveCell.Value = Me.Material'Guardas y cierras el excelxls.ActiveWorkbook.Savexls.Application.QuitSet xls = Nothing'Lanzas un mensaje de confirmaciónMsgBox "Importación realizada correctamente", vbInformation, "CORRECTO"End Sub

Discúlpame, como no se distingue mucho lo que es código y aclaraciones podrías pegarme nuevamente el código pero a lo largo, ¿y por otra parte decime si esta bien le puse el procedimiento en eventos en al hacer click?

Aquí te va el código de nuevo:

Private Sub cmdExportExcel_Click()
'Declaras las variables
Dim fExcel As String 'En fExcel recogeremos la ruta, nombre y extensión
Dim xls As Excel.Application
Dim Columna As Integer
'Si tienes el Excel en el mismo directorio de la BD puedes definir la ruta así:
fExcel = Application.CurrentProject.Path & "\ExcelDatos.xls"
Set xls = CreateObject("Excel.Application")
xls.Workbooks.Open 
fExcelxls.Worksheets("Hoja1").Activate
'Exportas la fecha, con formato fecha
xls.ActiveSheet.Range("C5").Select
xls.ActiveCell.Value = CDate(Me.Fecha)
'Exportas el material
xls.ActiveSheet.Range("H8").Select
xls.ActiveCell.Value = Me.Material
'Guardas y cierras el excel
xls.ActiveWorkbook.Save
xls.Application.Quit
Set xls = Nothing
'Lanzas un mensaje de confirmación
MsgBox "Importación realizada correctamente", vbInformation, "CORRECTO"
End Sub

Sí, el evento "Al hacer click" es el correcto si lo lanzas desde un botón.

Ah, se me olvidaba, has de registrar la librería Microsof Excel x.xx Object Library, donde x.xx dependerá de la versión que tengas instalada.

Para registrarla, desde el editor de VBA, vas al menu Herramientas, eliges Referencias, y en la ventana que te sale la buscas y le marcas la casilla. Aceptas y listo, ya la tienes registrada.

Me sale este error que puede ser

Pues viendo sólo eso, no te puedo decir de dónde viene ese error, lo que sí sé es que no es culpa del código, porque este funciona perfectamente (adjunto ejemplo)

ok , si podes enviarme el ejemplo por otro lado porque no lo puedo bajar dice que es muy grande

Pero.. Si sólo pesa 34 Kb!

A ver si así: ejemplo

¡Gracias! Ok ahora si logre que funcione, muchas gracias

No se si viste la otra pregunta sobre un tema parecido que tengo

¿Referido a pasar a excel pero un informe con su estructura?

Por otra parte ya te valoro la repuesta

Te hago una pregunta referido al mismo tema, es posible tomar dos campos distintos de una tabla y colocar en el código que caigan en la misma celda siguiendo con el ejemplo que me mandaste : producto y material a la celda H8

Sí, de esta forma:

'Exportas el producto y el material
xls.ActiveSheet.Range("H8").Select
xls.ActiveCell.Value = Me.Producto & " " & Me.Material

En este caso he encadenado los dos valores con un espacio en blanco. Podrías usar otras opciones como la barra inclinada ( Me.Producto & "/" & Me.Material), un guión con espacios a los lados ( Me.Producto & " - " & Me.Material) . Las posibilidades son enormes.

Respuesta
1

Tenés que crear una consulta o Query .

Desde menú Datos, Obtener Datos externos, Desde Access y seleccionar tu base y luego la tabla. Luego podrás capturar solo las col que te interesan.

Otro modo: Desde menú Datos, Obtener datos externos, De otra fuente y allí la opción Microsoft Query. En la nueva ventana optá por 'Nuevo origen de datos' y dejá tildada la opción de seguir con el Asistente y Aceptá.

A continuación te pedirá un nombre para la consulta, la ubicación de tu base y de allí la tabla y más adelante podrás seleccionar los campos a capturar.

Con ambos métodos, una vez en Excel podrás capturar parte o toda la información para volcarla en celdas especiales, darle formato, etc.

PD) Desde la demo de mi manual MSQuery podrás acceder a algunas imágenes que quizás también ayuden.

Sdos

Elsa

Hola elsa si llego de las dos manera pero el problema es que me queda resaltado el nombre que tienen la columnan en la tabla y el símbolo de filtrado, como evito eso dos problemas, por la planilla que tengo, tiene todo un recuadro con líneas dibujada y queda una mala preentacion

Gracias

Claro, porque ahora tenés una consulta que se irá actualizando a medida que cambies datos en Access.

Si solo necesitas de un modo puntual, obtener cierta información de tu base quizás debieras realizar lo que te sugirió el otro experto.

Sino, desde Excel debes capturar solo la información que necesitas y ubicarla en la otra hoja en las celdas necesarias y darle el formato deseado. Podés obtener una rutina para esto realizando los pasos manualmente con la grabadora de macros encendida. Al detenerla, en un módulo encontrarás las instrucciones.

Si luego necesita de algún ajuste podés dejarla escrita aquí para que te ayudemos a pulirla.

Sdos!

¡Gracias! Ok pruebo con la otra opción para ver que resultado me arroja desde ya muchas gracias y muy buena la repuesta

Atentamente. Jorge

Bien, y si te quedas con esta opción de la consulta, mereceré que cambies la valoración ;(

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas