Easy-Micro

ESPACEMEMBRE VBA
Shell VBA

La commande Shell sous VBA

Exemple: ouvrir le solitaire (Excel 2003)
Sub solitaire()
Shell "sol" , vbNormalFocus
End Sub

Exemple: ouvrir le bloc-notes (Excel 2003/2007/2010)
Sub blocnote()
Shell "notepad"
End Sub

Autre exemple: Ouverture du bloc-notes dans 5 secondes
Sub blocnote_auto()
Application.OnTime Now + TimeValue("00:00:05"), Shell("notepad", vbNormalFocus)
End Sub

Exemple: ouvrir le fichier titi.doc sur le disque
Sub OuvreTiti()
Shell "winword c:\titi.doc"
End Sub

Exemple: lire une vidéo
Sub OuvreVideo()
Shell """C:\Program Files\Windows Media Player\wmplayer.exe"" ""C:\clock.avi""", vbMaximizedFocus
End Sub

Note sur les guillemets:
En plus des guillemets de la commande Shell, on doit mettre le nom de l'exécutable entre guillemets puisqu'il contient des espaces. Idem pour le chemin (path) si celui-ci contiens des guillemets et pour mettre un guillemet entre guillemets, il faut les doubler.

Voir aussi l'utilisation de l'API ShellExecute pour le cas ou on veut que VBA trouve tout seul l'exécutable.

Exemple: supprimer un fichier (kill) ou un dossier (RmDir)
Sub supprimeTout()
Kill "C:\monfichier.doc"
'RmDir "C:\mondossier" 'ce dossier doit être vide
End Sub

Note: Attention: pas de passage par la corbeille et le dossier doit être vide.

Autre exemple: Procédure qui permet de lancer winword.exe et d'ecrire dans sa zone de travail puis de Quitter
Sub ouvrir_word()
' '---------------------------------------------------
Dim app,ret
' A adapter en fonction de votre installation
app = "C:\Program Files\Microsoft Office2003\OFFICE11\WINWORD.EXE"

ret = Shell(app, 3) ' Exécuter Word ; 3 = "en plein écran"

SendKeys "bonjour Word!", True
SendKeys "%fq", True ' Réalise ALT+F+Q ; True=reste dans Word
' SendKeys "%{F4}N"; True' Réalise ALT+F4 et répond Non pour quitter sans enregistrer
End Sub

VBA Objets DAO (Data Access Objects)
Dans Excel, choisissez la commande "Références" du menu "Outils" de Visual Basic Editor et cochez Microsoft DAO 3.6 Object Library.


< Page précédente VBA Page suivante >