Ouverture d'une macro Excel avec un Batch?

anthooooony

XLDnaute Occasionnel
Bonjour

J'ai cherché sur beaucoup de site comment ouvrir excel et lancer une macro à son ouverture grace à .bat.

Ouverture du fichier Excel

start excel.exe "C:\test.xlsm"

Ouverture du fichier Excel + Lancement de la requete
j'ai trouvé ca sur Internet mais ca ne marche pas..
start excel.exe "C:\test.xlsm" /x "Macro1"

mais elle me dit Macro1.xlsx introuvable vérifiez l'orthographe etc

J'ai du faire quelque chose qu'il ne fallait pas...

J'ai reussi à contourner en activant ma macro1 à l'ouverture du fichier excel. Mais je suis vraiment interessé pour savoir comment l'activer via un fichier .Bat.

Merci d'avance

cdt
anthooooony
 

Pièces jointes

  • TEST.xlsm
    14.5 KB · Affichages: 243
  • TEST.xlsm
    14.5 KB · Affichages: 269
  • TEST.xlsm
    14.5 KB · Affichages: 280
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re : Ouverture d'une macro Excel avec un Batch?

Je n'ai pas modifié le nom Macro1 de ton fichier; et maintenant avec Msg erreur: Icompatibilité de type.

Maintenant la macro s'exécute mais il faut enlever l'éspace: monparam = Split(macmdline, "/cmd").

Pour moi problème résolu.


A+ :cool:
 

Lone-wolf

XLDnaute Barbatruc
Re : Ouverture d'une macro Excel avec un Batch?

Bonjour degap05,

pas de soucis, mais comme je commencerais à travailler (maintenant en arrêt maladie), personnellement je ne pourrait pas t'aider.

Note: travailler (entre nous... je dois déscendre 2 ou 3 ministres en Italie ;) )


A+ :cool:
 

chossette9

XLDnaute Nouveau
Re : Ouverture d'une macro Excel avec un Batch?

Bonjour,

excusez-moi de relancer la conversation, mais il se trouve que je viens de tester le principe d'ouvrir une macro par batch.
J'ai un soucis au niveau d'Excel, pour ce qui est de récupérer la ligne de commande.
Je passe dans mon batch les lignes suivantes :
Code:
C:\Program Files (x86)\Microsoft Office\Office12\EXCEL.exe" /cmd/TraitementFichier/test
 "D:\Profiles\gRiquois\Documents\Foot\Traitement.xlsm"

Et j'ai repris un des codes sous Excel pour la récupération de la ligne de commande :
Code:
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

Private Function GetCmd() As String
   Dim lpCmd As Long
   lpCmd = GetCommandLine()
   MsgBox lpCmd
   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

    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)
            End If
        End If
    End If
End Sub

Le soucis est que la variable macmdline ne contient pas /cmd/TraitementFichier/test à la fin, mais /e

Quelqu'un saurait-il me dire d'où vient le problème ?
Je suis sous Windows 7, Excel 2007.

Merci d'avance
 

chossette9

XLDnaute Nouveau
Re : Ouverture d'une macro Excel avec un Batch?

Re-bonjour,

je reviens vers vous pour vous donner de nouvelles informations.

Je viens de tester le batch et le fichier Excel sur mon poste personnel (Windows7 et Excel 2010), et le souci est quasiment le même qu'avec Excel 2007, sauf qu'à la place de m'afficher /e, la messagebox m'affiche /dde...
J'avoue ne pas comprendre où se situe le problème.

Cordialement.
 

Discussions similaires

Statistiques des forums

Discussions
312 231
Messages
2 086 457
Membres
103 219
dernier inscrit
Akyrah