VBA: Trouver le chemin de Bureau


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 Environ(). Hélas, Environ() n'offre pas cette possibilité. Il faudra trouver une autre solution. La voici…

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 (UDF – User Defined Function) qui retourne une chaîne de caractères (String) contenant le chemin vers le dossier "Bureau".

Code de la Fonction VBA "ObtenirCheminBureau()" pour trouver le chemin du Bureau

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 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 de quelconque Référence).

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

Si vous avez envie/besoin d'investiguer plus en profondeur ce que VBA peut faire avec vos fichiers et dossiers, voici quelques pistes à suivre…

 

7 0


Laissez un commentaire

Votre adresse de messagerie ne sera pas publiée.