Comment Lancer une macro Excel en ligne de commande (Sans Worksheet_Open Événement)?
Est-il possible de lancer une Macro Excel en ligne de commande?
Je ne veux pas utiliser le Worksheet_Open
événement et il suffit d'ouvrir le Fichier Excel.
J'ai besoin de lancer des macros qui existe dans le Classeur Excel.
- Je vous suggère d'utiliser un vbs à la place. Vous pouvez automatiser Excel via le script
- Je suis d'accord avec brettdj. Utiliser un vbs. Si vous souhaitez exécuter à partir de la ligne de commande, puis vous devrez écrire un fichier de commandes et l'utilisation de la
Worksheet_Open
événement. - Est-il possible de faire quelque chose comme fichier de commandes à l'aide de
VBS
? Je n'ai jamais utilisé, pouvez-vous svp me donner un exemple pour lancerMyMacro
dansMyExcelFile.xlsm
? - Espérons que cela aide? stackoverflow.com/questions/2050505/...
- Voir aussi cet exemple stackoverflow.com/questions/10530299/...
- Grâce à la discussion que vous avez mentionné m'a aidé
Vous devez vous connecter pour publier un commentaire.
Utiliser Windows PowerShell, il a d'excellentes COM interop soutien.
J'ai le classeur c:\TestBeep.xlsm avec une macro appelée "Test". C'est mon relevé de notes:
En option vous pouvez ajouter dans
$app.Visible = $True
pour rendre la fenêtre visible.Enfin j'ai utilisé un Script VB et lancé à partir de la Ligne de Commande. C'était ma solution :
Saved
de propriété, il n'a pas d'enregistrer le fichier. Utiliser leSave
méthode à la place.AutoIt propose aussi des bons de prise en charge COM, et a beaucoup d'Excel-fonctions de contrôle. Vous pouvez compiler le script à une .EXE, puis l'exécuter à partir de la ligne de commande.
Si vous préférez le code en C# l'utilisation de ce modèle
Merci! Mehdi votre réponse a fonctionné pour moi aussi avec un petit ajustement. La ligne
xl.Application.Visible = True
a été en laissant ouvert un zombie/fantôme EXCEL.EXE processus à l'aide de la mémoire (trouvé par Gestionnaire des Tâches de Windows). À l'aide dexl.Application.Visible = False
semble plutôt à éliminer les zombies.