RDV+DIAL chat illimit� dans ta r�g!
no save
Assistance
Achat
News

FAQ | Visual Basic

[VBA/VB6] Rép. Mes Documents+Variables Environnement
Publié par lermite222, dernière mise à jour mar. 10 nov. 2009 à 16:06:35 par marlalapocket
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
Fonctions Environnement
Variables Windows
Variables système
Annexe


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).
Version Web
Réalisé par RedShift
no save