Accès à dossiers et sous-dossiers depuis Excel VBA

Bonjour,

Je classe mes photos numérisés dans des dossiers et sous dossiers en fonction de l'année,du lieu, de l'objet des photos, ...

Exemple : C:\Documents\Dossier photos\1996 à 1990 - Films XLVII à LXXII\1988-2 Amanvillers (aout) - LIII

Dans ce sous-dossier, se trouvent toutes mes photos pour le lieu, l'année, ... Je gère ces différents répertoires à partir d'une simple liste Excel que je documente manuellement.

Je souhaite pouvoir accéder directement à mes dossiers de photos à partir d'une macro VBA. Le sous-dossiers à ouvrir y sera défini en dynamique en fonction de la ligne sélectionnée

J'ai trouvé un code qui utilise la fonction "Shell"

'Définition du dossier à ouvrir
XRDoss = "C:\Documents\Dossier photos\"
XDoss = "1986 à 1990 - Films XLVII à LXXII\1988-2 Amanvillers (aout) - LIII"
'Ouverture du dossier pour le répertoire
Shell Environ("WINDIR") & "\explorer.exe " & XRDoss & XDoss, vbNormalFocus

Ce code ne fonctionne pas comme je le voudrais: il n'ouvre que C:\Documents et ne va pas jusqu'au sous-dossier

J'ai trouvé une autre formulation pour la fonction "Shell"

Shell "C:\windows\explorer.exe " & XRDoss & XDoss, vbNormalFocus

Ca ne marche pas mieux !

Pouvez-vous m'aider ?

Cordialement

J.Legrand

Bonjour,

Le chemin contient des espaces, il faut que tu l'encapsules avec des " comme ci-dessous (comme il s'agit du délimiteur de chaîne de caractères, il faut le doubler)

Shell Environ("WINDIR") & "\explorer.exe """ & XRDoss & XDoss, vbNormalFocus & """"

f

Bonjour et merci pour la réponse

J'ai essayé avec la formulation que vous me communiquez. Ca ne marche pas mieux

Pouvez-vous me préciser la règle pour "encapsuler" ?

Que faut-il réellement encapsuler ?

Merci d'avance

Bonjour Legrand JP,

J'ai répondu trop vite, désolé. Je me suis arrêté au fait que les noms de dossiers comportaient des espaces et en plus la syntaxe communiquée est erronée (J'ai encapsulé le paramètre d'affichage de la fenêtre alors que seul le chemin doit l'être).

Le dossier "C:\Documents\" fait référence au dossier personnel associé à votre compte Windows et pas à un dossier nommé "Documents" directement créé sous la racine "C:\".

J'ai recréé les dossiers cités dans l'exemple et quand j'exécute le code de l'exemple, j'obtiens le même résultat à savoir l'explorateur s'ouvre sur "Documents" sans aller plus loin. Par contre avec le code suivant (testé) :

XRDoss = Environ("USERPROFILE") & "\Documents\Dossier photos\"
XDoss = "1986 à 1990 - Films XLVII à LXXII\1988-2 Amanvillers (aout) - LIII"
'Ouverture du dossier pour le répertoire
Shell Environ("WINDIR") & "\explorer.exe """ & XRDoss & XDoss & """", vbNormalFocus

l'explorateur s'ouvre et va jusqu'au sous-dossier . La variable d'environnement "USERPROFILE" contient le chemin d'accès à votre dossier personnel.

Avec mes excuses pour la première réponse bien trop rapide.

Bonjour

Après quelques tâtonnements ... ça marche !

Merci

Rechercher des sujets similaires à "acces dossiers vba"