IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Discussion :

[FAQ VB/VBA] Récupérer le chemin d'accés du répertoire Mes documents


Sujet :

Contribuez

  1. #1
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut [FAQ VB/VBA] Récupérer le chemin d'accés du répertoire Mes documents
    Suite à la discussion : [VB6] Syntaxe répertoire de sauvegarde ,
    et aprés adaptation de la faq : Comment accéder à la base de registre ?

    cela donne :

    Q : Comment Récupérer le chemin d'accés du répertoire Mes documents
    R : Par la lecture de la clef : "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal" dans la base de registre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Sub LectureRegistre()
      Dim Ma_Clef As String 'Chemin de ma clef dans le registre
      Dim WshShell As Object
      Ma_Clef = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal"
      Set WshShell = CreateObject("WScript.Shell")
      MsgBox WshShell.RegRead(Ma_Clef)
      Set WshShell = Nothing
    End Sub

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par wape
    Bonjour,

    Une variante du code de bbil, sans lecture de la base de registre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim stRep As String
    Dim WshShell As Object
    Set WshShell = CreateObject("WScript.Shell")
    stRep = WshShell.SpecialFolders("MyDocuments")
    Set WshShell = Nothing
    Set MyDb = MyWs.CreateDatabase(stRep & "\" & dbname & ".mdb", dbLangGeneral, dbVersion30)
    wape

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2006
    Messages : 8
    Points : 11
    Points
    11
    Par défaut Le sujet est un peu vieux mais ça peu toujours aider !!!
    Salut à tous,

    Il est possible de connaitre le chemin d'accés en utilsant la ligne de commande suivante :

    cd "%USERPROFILE%\Mes Documents" (par exemple pour le Dossier Mes Documents).

    Prenez le temps de tester dans une boite de commande et vous verrez que ça vous ressortira l'adresse de l'utilisateur courant, sous Linux/Mac il s'agit de la ligne de commande cd "home" ou "~" si mes souvenirs sont bons mais je ne suis pas sur de cela. Par contre %USERPROFILE% fonctionne sous XP avec certitude mais je n'ai pas tester sous 2000.

    Voià je ne sais pas si cela aura un intérêt pour certains, à vrai dire moi ça m'a permis d'avancer sur ma conception de Gadgets/Widgets sous Yahoo! Widget Engine qui répertorie les widgets dans le dossier "Mes Documents\My Widget" de l'utilisateur courant.

    Passez une bonne journée à tous et en espérant que ça pourra aider.

    Cordialement,

    GK.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Février 2010
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 194
    Points : 378
    Points
    378
    Par défaut
    Boujour,

    mouai... l'ami LarabNain il reste que si ton script doit etre utilisé sous differente langue d'OS cela ne fonctionnera pas !

    Donc les methodes suggérées par bbil restent les plus certainnes.

    Toutefois si tu ne peux faire autrement que d'utiliser les cmds MsDos il est possible de passer par la base de registre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    @echo off
     
    for /f "tokens=2 delims=\" %%i in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Personal') do set MyDocFolder=%%i
     
    set MyDocPath=%USERPROFILE%\%MyDocFolder%\
    echo %MyDocPath%
    Pause
    Une petite explication :

    reg query => permet de récupérer la valeur d'une ou plusieurs clés/sous clés de registre.

    Ici le for permet 3 choses:

    -récupérer la valeur renvoyée par la cmd reg query. Notez que reg query est reconnue par le for comme une cmd grace aux simples quotes.

    -ne prendre de cette valeur, que ce qui nous interesses.

    -mettre le tout dans une variable.

    Si vous voulez des précisions sur le fonctionnement de cette methode n'hésitez pas!

    A+

  5. #5
    Candidat au Club
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Août 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Finance

    Informations forums :
    Inscription : Août 2017
    Messages : 4
    Points : 4
    Points
    4
    Par défaut bonjour! ta code marche super Top
    Citation Envoyé par SfJ5Rpw8 Voir le message
    Suite à la discussion : [VB6] Syntaxe répertoire de sauvegarde ,
    et aprés adaptation de la faq : Comment accéder à la base de registre ?

    cela donne :

    Q : Comment Récupérer le chemin d'accés du répertoire Mes documents
    R : Par la lecture de la clef : "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal" dans la base de registre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Sub LectureRegistre()
      Dim Ma_Clef As String 'Chemin de ma clef dans le registre
      Dim WshShell As Object
      Ma_Clef = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal"
      Set WshShell = CreateObject("WScript.Shell")
      MsgBox WshShell.RegRead(Ma_Clef)
      Set WshShell = Nothing
    End Sub

    Salut, dis est-ce que cette super code marche pour recuper le chemin du repertoire du telechargement par défaut?
    Merci

  6. #6
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 593
    Points : 34 250
    Points
    34 250
    Par défaut
    Salut,

    tu peux regarder dans les cles de registre du dossier
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\
    chez moi cette cle s'appelle
    {374DE290-123F-4565-9164-39C4925E467B}
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  7. #7
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, voir ici, nul besoin d'aller tripoter la bdr.

  8. #8
    Candidat au Club
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Août 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Finance

    Informations forums :
    Inscription : Août 2017
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par Jean-Philippe André Voir le message
    Salut,

    tu peux regarder dans les cles de registre du dossier

    chez moi cette cle s'appelle
    Bjr, merci pour ta reponse, ca marche d'enfer! merci

Discussions similaires

  1. Récupérer le chemin d'accés d'un fichier
    Par massol joel dans le forum Contribuez
    Réponses: 2
    Dernier message: 24/10/2006, 16h03
  2. [VBA] Retrouver le chemin d'accès de la base ouverte
    Par menguygw dans le forum Access
    Réponses: 3
    Dernier message: 26/04/2006, 11h05
  3. [VB]récupérer le chemin d'accès du répertoire de profile
    Par Empty_body dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 06/02/2006, 10h37
  4. [VBA-E]récupérer le chemin d'accès d'un fichier
    Par gil68 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 05/02/2006, 18h50
  5. Récupérer le chemin d'accés du PFile.
    Par Laurent Dardenne dans le forum Administration
    Réponses: 7
    Dernier message: 03/02/2004, 17h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo