Actualizar excel con macro

Tengo la siguiente macro para abrir un excel desde access, actualizar los datos, que están vinculados a una base de datos externa (ODBC), y quiero que cuando acabe la actualización se cierre excel, pero con el código que he escrito se me cierra antes de acabar la actualización. ¿Existe alguna sentencia que me permita detectar cuando ha acabado la actualización?
Esta es la macro:
Sub openexcel()
Dim Ex As New Excel.Application
Ex.Visible = True
Workbooks.Open "C:\Documents and Settings\sse001\My Documents\Purch.xlsx"
ActiveWorkbook. RefreshAll
ActiveWorkbook. Sabe
ActiveWorkbook. Close
End Sub

1 Respuesta

Respuesta
2
Hum,
Parece extraño, supongo que verificastes paso a paso que efectivamente si refresca, y que esta conectado correctamente, luego modificas los datos en access, corres el macro y se cierra.
Por favor, prueba para salir de dudas modificando un registro en access, cierras la tabla, abres excel (el archivo con los datos externos) y actualiza manualmente con botón derecho. Si no se actualiza es un problema con la conexión, pero si si se actualiza entonces debe haber algo en el código.
Una opción puede ser refrescar consulta por consulta
Range("F4"). ListObject. QueryTable. Refresh
otra opción es un macro en el libro de excel durante el evento Workbook_Open para refrescar.
Private Sub Workbook_Open()
End Sub
Lamentablemente no existe la propiedad refreshed = true. Pero si existe Saved.
If Not ActiveWorkbook.Saved Then
MsgBox "no salvado"
End If
Muchas gracias por tu tiempo David,
El problema estaba al hacer el "RefreshAll", actualizando la tabla con el "ListObject.QueryTable.Refresh" se actualiza, se guarda y se cierra correctamente.
Muchas gracias, me has sido de gran ayuda.
Un saludo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas