Gracias de antemano por su ayuda cada vez que me tranco. En esta ocasión tengo unos informes que se alimentan de una Tabla Master la cual reside en el mismo Workbook. Las fórmulas de estos informes están en cada celda (vlookup, countifs, sumifs, etc.). De esta manera todo funciona correctamente.
Pero ahora queremos mover la Tabla Master a Access y que Excel se alimente de esa Tabla Master desde Access. Esto lo logré con este código:
Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
Dim l As ListObject
Dim q As QueryTable
Dim s As String
hojUsr_TablaMaster.Cells.Delete 'CONEXION A LA BASE DE DATOS
s = "OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Jet OLEDB:Database Password=CODMON;Data Source="
s = s & "O:\DatabaseInformesCOD.mdb"
Set l = hojUsr_TablaMaster.ListObjects.Add(xlSrcExternal, s, , xlYes, hojUsr_TablaMaster.Cells(1, "A"))
Set q = l.QueryTable
q.SavePassword = False
q.CommandType = xlCmdTable
q.CommandText = "TablaSubAlim" 'Este es el nombre de la Tabla en Access q.Refresh
End Sub
Cuando corro este código logro extraer la TablaMaster desde Access y vaciarla en Excel en la pestaña correspondiente. Sin embargo las fórmulas que están escritas en las celdas de los informes pierden la referencia y pierdo toda la información de los informes.
Investigando un poco el código aprendí que las celdas que contienen fórmulas en los informes pierden la referencia cuando corro la línea del código hojUsr_TablaMaster.Cells.Delete ya que borro toda la información de esa pestaña. Sin embargo, cambié esa línea de código por:
hojUsr_TablaMaster.Range(Rango).Select
Selection.ClearContents
Con este cambio en el código las celdas con fórmulas en las pestañas de informes no pierden la referencia pero me ocurre otro error en la línea del código: Set l = hojUsr_TablaMaster.ListObjects.Add(xlSrcExternal, s, , xlYes, hojUsr_TablaMaster.Cells(1, "A"))
El error me dice: que no puede haber una tabla sobre otra tabla.
Me gustaría saber si hay una solución a este problema. No quisiera tener que escribir estas fórmulas en código VBA en las pestañas de informes ya que se pone lento.
Espero haberme explicado.
Gracias!
No puedo enviar el archivo por privacidad de la compañía.
Featured Replies
Archivado
Este tema está ahora archivado y está cerrado a más respuestas.
Saludos:
Gracias de antemano por su ayuda cada vez que me tranco. En esta ocasión tengo unos informes que se alimentan de una Tabla Master la cual reside en el mismo Workbook. Las fórmulas de estos informes están en cada celda (vlookup, countifs, sumifs, etc.). De esta manera todo funciona correctamente.
Pero ahora queremos mover la Tabla Master a Access y que Excel se alimente de esa Tabla Master desde Access. Esto lo logré con este código:
Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
Dim l As ListObject
Dim q As QueryTable
Dim s As String
hojUsr_TablaMaster.Cells.Delete
'CONEXION A LA BASE DE DATOS
s = "OLEDB;Provider=Microsoft.ACE.OLEDB.12.0;User ID=Admin;Jet OLEDB:Database Password=CODMON;Data Source="
s = s & "O:\DatabaseInformesCOD.mdb"
Set l = hojUsr_TablaMaster.ListObjects.Add(xlSrcExternal, s, , xlYes, hojUsr_TablaMaster.Cells(1, "A"))
Set q = l.QueryTable
q.SavePassword = False
q.CommandType = xlCmdTable
q.CommandText = "TablaSubAlim" 'Este es el nombre de la Tabla en Access
q.Refresh
End Sub
Cuando corro este código logro extraer la TablaMaster desde Access y vaciarla en Excel en la pestaña correspondiente. Sin embargo las fórmulas que están escritas en las celdas de los informes pierden la referencia y pierdo toda la información de los informes.
Investigando un poco el código aprendí que las celdas que contienen fórmulas en los informes pierden la referencia cuando corro la línea del código hojUsr_TablaMaster.Cells.Delete ya que borro toda la información de esa pestaña. Sin embargo, cambié esa línea de código por:
hojUsr_TablaMaster.Range(Rango).Select
Selection.ClearContents
Con este cambio en el código las celdas con fórmulas en las pestañas de informes no pierden la referencia pero me ocurre otro error en la línea del código: Set l = hojUsr_TablaMaster.ListObjects.Add(xlSrcExternal, s, , xlYes, hojUsr_TablaMaster.Cells(1, "A"))
El error me dice: que no puede haber una tabla sobre otra tabla.
Me gustaría saber si hay una solución a este problema. No quisiera tener que escribir estas fórmulas en código VBA en las pestañas de informes ya que se pone lento.
Espero haberme explicado.
Gracias!
No puedo enviar el archivo por privacidad de la compañía.