DOS à partir de macros (Microsoft Excel)
Les macros sont un excellent moyen d’étendre les fonctionnalités d’un programme tel qu’Excel. Cependant, vous souhaiterez peut-être étendre encore plus cette fonctionnalité en exécutant un fichier de commandes DOS à partir de votre macro. Excel vous permet de le faire à l’aide de la commande Shell. La syntaxe générale de la commande est la suivante:
dRetVal = Shell("myfile.bat", mode)
Dans les guillemets, vous pouvez placer le nom de chemin complet et le nom de fichier du fichier que vous souhaitez exécuter. Sur certains systèmes, vous pouvez rencontrer des problèmes si vous utilisez un nom de chemin avec la spécification de fichier. (Cela semble rogner sa tête laide si vous avez des noms de chemin complexes ou si le nom du chemin comprend des espaces.) Si vous avez ce problème, utilisez simplement la commande ChDir juste avant Shell afin de changer le répertoire utilisé par Excel. Vous pouvez ensuite exécuter Shell en utilisant simplement un nom de fichier.
L’indicateur de mode indique simplement à Excel comment vous voulez que la fenêtre s’ouvre pour que le fichier apparaisse. L’indicateur de mode peut être l’un des suivants:
Value |
Variable Nam |
Meaning |
||
0 |
vbHide |
Window is hidden and has focus. |
||
1 |
vbNormalFocus |
Window is the normal size and has focus. |
||
2 |
vbMinimizedFocus |
Window is minimized and has focus. |
||
3 |
vbMaximizedFocus |
Window is maximized and has focus. |
||
4 |
vbNormalNoFocus |
Window is normal size, but doesn’t have focus. |
||
6 |
vbMinimizedNoFocus |
Window is minimized, but doesn’t have focus. |
La commande Shell renvoie une valeur qui indique l’ID programme du fichier que vous avez exécuté, ou bien un zéro. Si un zéro est renvoyé, une erreur s’est produite lors de l’exécution du fichier.
Vous devez vous rappeler que lorsque vous utilisez Shell, le fichier cible est exécuté immédiatement et il est exécuté indépendamment d’Excel. Cela signifie que la commande de macro suivante, dans votre macro Excel, est immédiatement exécutée sans attendre la fin du fichier cible Shell. Malheureusement, il n’existe aucun moyen de contourner ce comportement.
_Note: _
Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.
lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur]
.
ExcelTips est votre source pour une formation Microsoft Excel rentable.
Cette astuce (2506) s’applique à Microsoft Excel 97, 2000, 2002 et 2003. Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:
lien: / excelribbon-DOS_from_Macros [DOS à partir de macros]
.