Bonjour,
Je suis à la recherche d’une solution pour lancer une macro EXCEL à partir d’un fichier batch (.bat).
Je ne sais comment procéder. Quelqu’un aurait-il une idée ?
Merci à vous.
Bonjour,
Je suis à la recherche d’une solution pour lancer une macro EXCEL à partir d’un fichier batch (.bat).
Je ne sais comment procéder. Quelqu’un aurait-il une idée ?
Merci à vous.
Bonjour,
Vous voulez exécuter une macro qui fera quelle action ?
Parce qu’on peut aussi faire un évènement dans un fichier Excel.
Cordialement
Monsieur,
La macro que j’ai créée exécute 2 actions que sont la suppression de la première ligne d’un fichier extérieur et un changement de format '.xlsx → .csv.
Je prévois d’y incorporer une troisième commande.
Je voudrais, si cela est possible, la lancer à partir d’un fichier BATCH sans ouvrir EXCEL donc.
Cdlmt.
je crains que cela est impossible !
Sans ouvrir le fichier lui-même est peut-être possible, mais il faut savoir beaucoup de choses concernant ce fichier (chemin, nom du fichier et de la feuille, nombre de lignes et colonnes,…).
C’est plus facile de l’ouvrir et fermer sans changement ou on crée une copie du fichier, fait son truc et puis supprime la copie.
Bonjour,
Jai essayé la solution que voici:
Contenu du fichier BATCH
@echo off
color 0A
echo _________________________________________________
echo SCRIPT RUNNING
echo _________________________________________________
"C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE" /cmd/TRY "G:\service INFORMATIQUE 5IVE\BIKE OFFICE\IMPORT_FICHIERS\Matrices internes\MACROS_ESTEVEZ\Try.xlsm"
pause
Déclaration dans le fichier EXCEL :
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
Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.