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

Dernière mise à jour le 10 novembre 2009 à 16:06 par marlalapocket
Publié par lermite222
Dans l'explorateur de fichiers, le dossier Mes Documents semble être sur le root, or ce n'est pas le cas. Il est situé dans un sous-répertoire de C:\Documents and Settings. Le hic, c'est que le premier sous-répertoire prend le nom de l'utilisateur et change donc non seulement d'un PC à l'autre, mais également sur un PC multi-utilisateurs.
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).
Meilleures réponses pour « Rép. Mes Documents+Variables Environnement » dans :
PHP - Les variables d'environnement Voir Notion de variable d'environnement Les variables d'environnement sont, comme leur nom l'indique, des données stockées dans des variables permettant au programme d'avoir des informations sur son environnement. L'environnement, dans le cas du script...
[Bash] La variable d'environnement PATH VoirLa variable d'environnement PATH I. Préambule II. C'est quoi le shell ? III. Définition IV. Séance de dissection V. Ajouter un répertoire à la variable PATH VI. Et puis... I. Préambule Sous les systèmes GNU/Linux qu'on le veuille ou...
[PDF] Convertir des PDF en images (JPEG, BMP, GIF, etc...) VoirSi vous avez des documents PDF et que vous voulez les convertir en images (JPEG, GIF, BMP, ou n'importe quel format), de manière à les exploiter, par exemple dans un logiciel d'OCR ou de retouche/création d'images : Note : Cet article présente une...
[Shell] Tester une variable numérique VoirTester une variable numérique    Préambule Dans un environnement "shell", les variables sont, par défaut, de type "chaîne de caractères". De ce fait il n'est pas possible de déclarer une variable de type "entier" (enfin, ceci n'est pas tout à...
Variables d'environnement VoirVariables d'environnement Une variable d'environnement est une valeur dynamique, chargée en mémoire, pouvant être utilisée par plusieurs processus fonctionnant simultanément. Sur la plupart des systèmes d'exploitation, les emplacement de...
Les variables d'environnement avec les servlets VoirNotion de variable d'environnement Les variables d'environnement sont, comme leur nom l'indique, des données stockées dans des variables permettant au programme d'avoir des informations sur son environnement. L'environnement, dans le cas d'une...
Java: les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage Java sont typées, c'est-à-dire que les données contenues dans...