Bonjour le forum,

Je dispose dans un même classeur de 3 tables contenues dans 3 feuilles distinctes.
Ces tables ont été importées de 3 tables Access avec option actualisée à l'ouverture ; ce qui se fait quand j'ouvre mon classeur (directement).
J'ai mis en place un batch qui me permet d'éxécuter une macro de mon fichier Excel.revanche lorsque je l'ouvre via un batch l'actualisation ne se fait pas.
Mon problème réside sur le fait que mes tables importées ne s'actualises pas lorsque j'ouvre mon classeur via le batch, j'ai rajouté l'option ActiveWorkbook.RefreshAll dans la macro appelée par le batch mais
cela ne change rien.
Quelqu'un aurait une solution à me proposer?

Merci d'avance.


voici le code de mon workbook_open.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Option Explicit
Private Declare Function GetCommandLine Lib "kernel32" Alias "GetCommandLineA" () As Long
Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (lpString As Any) As Long
Private Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (lpString1 As Any, lpString2 As Any) As Long
Public Function GetCmd() As String
   Dim lpCmd As Long
   lpCmd = GetCommandLine()
   GetCmd = Space$(lstrlen(ByVal lpCmd))
   lstrcpy ByVal GetCmd, ByVal lpCmd
End Function
 
 
Private Sub Workbook_Open()
Dim macmdline As Variant
Dim monparam As Variant 'déclare une variable
ActiveWorkbook.RefreshAll
    macmdline = GetCmd
    '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


Ma ligne de commande Batch est:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
"C:\Program Files\Microsoft Office\Office12\EXCEL.exe" /cmd/Tout "B:\C_politique\Cf_Politique\Code\Reportage\Donne_2012.xlsm"


Le but de ce batch étant d'exécuter la macro Tout.