Exécuter une macro à partir d'un fichier BATCH

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.

1 « J'aime »

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.

1 « J'aime »

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.

1 « J'aime »

peut-être ceci windows - Convert XLS to CSV on command line - Stack Overflow

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

Source : Excel et Fichiers Batch : Passage de Paramètres.

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.