Bonjour le forum,
Voici mon problème je dispose dans un même classeur de 3 tables contenues dans des feuilles distinctes.
ces tables sont en fait liées à 3 tables Access.
Mes tables acces ont été liées avec option actualisée à l'ouverture ce qui se fait quand j'ouvre mon classeur (directement), en revanche lorsque je l'ouvre via un batch l'actualisation ne se fait pas.
Dans mon code workbook j'ai rajouté l'option ActiveWorkbook.RefreshAll mais cela ne change rien.
Quelqu'un aurait une solution à me proposer? Merci d'avance.
Voici mon code workbook_open:
Private Sub Workbook_Open()
Dim macmdline As Variant
Dim monparam As Variant 'déclare une variable
ActiveWorkbook.RefreshAll
macmdline = "/cmd/Tout"
'affecte la valeur de la ligne de commande
If Not IsNull(macmdline) Then 'si la variable est nulle
If Len(macmdline) > 0 Then 'on s'assure qu'il y a eu une ligne de commande passée
If InStr(macmdline, "/cmd") > 0 Then
macmdline = Replace(macmdline, ThisWorkbook.FullName, "", , , vbTextCompare)
monparam = Split(macmdline, "/cmd")
'Application.Run Mid(monparam(1), 2, Len(monparam(1)) - 3)
Application.Run Mid(monparam(1), 2, Len(monparam(1)) - 1)
End If
End If
End If
End Sub
Et voici la ligne de commande de mon Batch:
Où Tout est une macro qui fait un certain nombre de copier et coller
Voici mon problème je dispose dans un même classeur de 3 tables contenues dans des feuilles distinctes.
ces tables sont en fait liées à 3 tables Access.
Mes tables acces ont été liées avec option actualisée à l'ouverture ce qui se fait quand j'ouvre mon classeur (directement), en revanche lorsque je l'ouvre via un batch l'actualisation ne se fait pas.
Dans mon code workbook j'ai rajouté l'option ActiveWorkbook.RefreshAll mais cela ne change rien.
Quelqu'un aurait une solution à me proposer? Merci d'avance.
Voici mon code workbook_open:
Private Sub Workbook_Open()
Dim macmdline As Variant
Dim monparam As Variant 'déclare une variable
ActiveWorkbook.RefreshAll
macmdline = "/cmd/Tout"
'affecte la valeur de la ligne de commande
If Not IsNull(macmdline) Then 'si la variable est nulle
If Len(macmdline) > 0 Then 'on s'assure qu'il y a eu une ligne de commande passée
If InStr(macmdline, "/cmd") > 0 Then
macmdline = Replace(macmdline, ThisWorkbook.FullName, "", , , vbTextCompare)
monparam = Split(macmdline, "/cmd")
'Application.Run Mid(monparam(1), 2, Len(monparam(1)) - 3)
Application.Run Mid(monparam(1), 2, Len(monparam(1)) - 1)
End If
End If
End If
End Sub
Et voici la ligne de commande de mon Batch:
Code:
"C:\Program Files\Microsoft Office\Office12\EXCEL.exe" /cmd/Tout "B:\C_politique\CT_Politique\Code\Report\Donne_2012.xlsm"
Où Tout est une macro qui fait un certain nombre de copier et coller