Actualiser données externes via un batch

  • Initiateur de la discussion Initiateur de la discussion Thest
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Thest

XLDnaute Nouveau
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:


Code:
"C:\Program Files\Microsoft Office\Office12\EXCEL.exe" /cmd/Tout "B:\C_politique\CT_Politique\Code\Report\Donne_2012.xlsm"


Tout est une macro qui fait un certain nombre de copier et coller
 
Re : Actualiser données externes via un batch

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:

Code:
[COLOR="#FF0000"]Private Sub Workbook_Open()
Dim macmdline As Variant
Dim monparam As Variant 'déclare une variable
[COLOR="#FF0000"]ActiveWorkbook.RefreshAll[/COLOR]
    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[/COLOR]


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"


Tout est une macro qui fait un certain nombre de copier et coller





Re-bonjour,

Je me suis peut-être mal exprimé dans mon premier post, je réitére en espérant apporter
plus de précisions.

J'ai un fichier xlsm qu'on va nommer "Lexcel";"Lexcel" contient 3 feuilles "Import1", "Import2"
et "Import3" dans chacune d'elle on trouve les données d'une table Access.Chaque table Access a
été importés de la manière suivante:
Données--->Données externes---> "A partir du fichier Access" et en cochant l'option actualisé à
l'ouverture du fichier.
Lorsque je place "Lexcel" dans un espace approuvé, il s'actualise à l'ouverture sans problème.


J'ai ensuite rajouté 3 autres feuilles "présentable1", "présentable2" et "présentable3" sur lesquels
je fais divers calculs en me servant des données des feuilles "Import i" i=1,2,3 Et tous ces calculs
sont régis par la macro "Tout".

Je mets ensuite dans Thisworbook un code qui exécute la macro "Tout" via un fichier .bat (batch)


Mon .bat exécute la macro "Tout" sans souci, en revanche il n'actualise pas les données des feuilles
"Import i" i=1,2,3 et ce quel que soit l'emplacement de "Lexcel" (approuvé ou pas).


Mon problème est donc de faire en sorte que mon batch actualise les feuilles "Import i" i=1,2,3 et
éxécute ensuite la macro "Tout".


J'ai lu dans pas mal de source qu'il faille saisir le code suivant dans Thisworkbook


Code:
Private Sub Workbook_Open()
ThisWorkbook.RefreshAll
End Sub

Seulement voilà dans mon cas Thisworkbook contient déjà le code qui permet l'éxécution du batch,

j'ai quand même éssayé de rajouter ThisWorkbook.RefreshAll dans mon code Thisworkbook mais ça ne change
rien.


je fais appel aux expert VBA/Excel, S'il vous plaît aidez moi.



D'avance Merci.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour