Avez-vous besoin d'utiliser le Bureau (Desktop en anglais) dans votre application Excel/VBA? Pour lire ou sauvegarder des données par exemple? On pourrait penser qu'il est simple d'obtenir le chemin vers le Bureau grâce à la fonction VBA Environ(). Hélas, Environ() n'offre pas cette possibilité. Il faudrait donc trouver une autre solution. Et la voici… 🙂
Le problème du "Bureau" est que son chemin dépend du nom d'utilisateur de l'ordinateur. C'est donc un chemin dynamique et vous devez en tenir compte. Pour chaque utilisateur, ce chemin sera différent.
Il n'est pas toujours facile de trouver le chemin vers ce dossier spécial (le chemin varie selon la version du Système d'exploitation, selon l'utilisateur,…), même en dehors de VBA. Mais il est possible de profiter justement du fait que le "Bureau" est un des dossiers spéciaux ( .SpecialFolders
) accessibles via l'Objet WScript.Shell
. Que cela ne vous évoque rien? Ce n'est pas si grave. Avec la fonction qui suit, vous n'avez pas besoin de connaître tous les détails techniques. Néanmoins, vous pouvez trouver plus d'information sur WScript.Shell
sur la page y dédié sur le site de Microsoft.
Voici donc une simple fonction VBA qui n'a pas besoin d'arguments et qui retourne une chaîne de caractères (String
) contenant le chemin vers le dossier "Bureau" de l'utilisateur actif.
Code de la Fonction VBA "ObtenirCheminBureau()" pour trouver le chemin du dossier "Bureau"
Cette fonction VBA est toute prête à l'emploi. Il vous suffit de la copier/coller dans votre Projet VBA.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Public Function ObtenirCheminBureau() As String 'par: Excel-Malin.com ( https://excel-malin.com ) On Error GoTo ObtenirCheminBureauError Dim CheminBureau As String CheminBureau = "" Dim oWSHShell As Object Set oWSHShell = CreateObject("WScript.Shell") CheminBureau = oWSHShell.SpecialFolders("Desktop") If (Not (oWSHShell Is Nothing)) Then Set oWSHShell = Nothing ObtenirCheminBureau = CheminBureau Exit Function ObtenirCheminBureauError: If (Not (oWSHShell Is Nothing)) Then Set oWSHShell = Nothing ObtenirCheminBureau = "" End Function |
Finalement, cela n'a pas été si compliqué que cela… A utiliser sans modération.
Exemple d'utilisation pratique de la fonction ObtenirCheminBureau()
Voici un exemple qui montre comment utiliser la fonction VBA pour trouver le chemin du Bureau. Son utilisation dans votre code est très simple et ne requiert aucune manipulation inhabituelle (ni l'activation d'une quelconque Référence).
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Sub ExempleTrouverCheminBureau() 'par: https://excel-malin.com On Error GoTo TestErreur Dim CheminBureau As String CheminBureau = ObtenirCheminBureau() MsgBox CheminBureau 'affiche le chemin vers le dossier Bureau Exit Sub TestErreur: MsgBox "Une erreur s'est produite..." End Sub |
Pour aller plus loin en VBA
Si vous avez envie/besoin d'investiguer plus en profondeur ce que VBA peut faire avec vos fichiers et dossiers, voici quelques pistes à suivre…
- Comment créer des dossiers et sous-dossiers en VBA
- Manipulation basique des fichiers en VBA
- Comment obtenir les informations sur le Système en VBA
- Copier un dossier et son contenu
- Vérifier avec VBA si un dossier existe
- Comment utiliser RECHERCHEV en VBA? Oui, c'est possible!
- et vous pouvez aussi consulter la Liste de toutes les fonctions VBA
Commentaire sur “VBA: Trouver le chemin de Bureau”
Merci pour le tuyau !
Efficace et rapide !