VBA/VB6 - Rép. Mes Documents+Variables Environnement

Le code ci-dessous permet d'avoir le répertoire de Mes Documents quel que soit l'utilisateur connecté.
Collez ce code dans un module général :
Option Explicit Private Type SHITEMID cb As Long abID As Byte End Type Private Type ITEMIDLIST mkid As SHITEMID End Type Private Const CSIDL_PERSONAL As Long = &H5 Private Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" _ (ByVal hwndOwner As Long, ByVal nFolder As Long, _ pidl As ITEMIDLIST) As Long Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias "SHGetPathFromIDListA" _ (ByVal pidl As Long, ByVal pszPath As String) As Long Public Function Rep_Documents() As String Dim lRet As Long, IDL As ITEMIDLIST, sPath As String lRet = SHGetSpecialFolderLocation(100&, CSIDL_PERSONAL, IDL) If lRet = 0 Then sPath = String$(512, Chr$(0)) lRet = SHGetPathFromIDList(ByVal IDL.mkid.cb, ByVal sPath) Rep_Documents = Left$(sPath, InStr(sPath, Chr$(0)) - 1) Else Rep_Documents = vbNullString End If End Function
Exemple d'appel : Dans une feuille, collez un bouton et dans le code du bouton, collez
Private Sub CommandButton1_Click() Cells(5, 2) = Rep_Documents() End Sub
Plus simple sous VB6
Sous VB6, il vous suffit d'exploiter la variable d'environnement UserProfile :Ceci ne marche pas sous macintosh.
Fonctionne aussi sous VBA
Dim sPathUser as String sPathUser = Environ$("USERPROFILE") & "\mes documents\" MsgBox sPathUser
Fonctions Environnement
La fonction Environ$ sert à recevoir la valeur d'une variable d'environnement.Par exemple, si vous auriez mis WINDIR (sous Windows), vous auriez obtenu le dossier où est installé Windows (par défaut C:\Windows\).
Oui, oui : ce sont bien les variables que vous pouvez utiliser aussi bien en Batch que dans la boite de dialogue Exécuter. Également dans un environnement de programmation tel que VB et VBA.
Sous Windows, faites la touche Windows + R (ou menu démarrer ► Exécuter) et tapez %UserProfile%, vous atterrissez dans le dossier de l'utilisateur actuel. Tapez "%UserProfile%\Mes documents" pour atterrir dans vos documents, ou tapez %WinDir% pour le dossier de Windows ... ou encore %tmp% pour les dossiers temporaires, etc ...
Variables Windows
Variables utilisateur par défaut- TEMP Répertoire temporaire.
- TMP Répertoire temporaire.
Variables système
- ComSpec Chemin d'accès pour l'interpréteur de commandes.
- FP_NO_HOST_CHECK ?
- NUMBER_OF_PROCESSORS ?
- OS Renvoie l'OS en cours d'utilisation.
- Path ?
- PATHEXT ?
- PROCESSOR_ARCHITECTURE Renvoie l'architecture du processeur (x86 etc ...)
- PROCESSOR_IDENTIFIER Renvoie les identifiants du processeur.
- PROCESSOR_LEVEL ?
- PROCESSOR_REVISION Renvoie le N° de révision du processeur.
- TEMP Répertoire temporaire.
- TMP De même.
- windir Dossier où est installé Windows.
- SystemRoot De même.
Annexe
Si vous êtes administrateur, vous pouvez aussi changer les valeurs ou ajouter des variables d'environnement en allant dans le Panneau de configuration (en affichage classique) ► System ► Avancé ► Variables d'environnement.Et normalement vous verrez ce que j'ai écrit.
(fait avec Windows XP Pro).
Ce document intitulé « VBA/VB6 - Rép. Mes Documents+Variables Environnement » issu de Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.