Aide chemin d'accès de fichier

Bonjour à tous,

J'ai une question niveau code.

J'ai ici une macro qui permet de choisir des albums photo. Pour cela une fenêtre de dialogue de choix de fichier s'ouvre à l'utilisateur. Et pour lui faciliter la tâche je lui indique où se trouve le fichier de l'album voulue.

Le code marche et il est très basique.

Sub pied()
Application.ScreenUpdating = True
num = InputBox("numero album")
chemin:
chemin = "C:\Users\Public\Pictures\Sample Pictures\album " & num & "\annee 2010"
Set FenetreSelectionFichiers = Application.FileDialog(msoFileDialogFilePicker)
With FenetreSelectionFichiers
    .InitialFileName = chemin
    .AllowMultiSelect = True
    .Title = "Sélectionner l'album voulue..."
        If .Show <> -1 Then
            If MsgBox("Aucun album n'a été sélectionné...", vbRetryCancel + vbExclamation, "Demande de confirmation") = vbRetry Then
                GoTo chemin
            Else: Exit Sub
        End If
    End If
End With
End Sub

Mais si l'utilisateur veut un album qui n'existe pas, la macro va le renvoyer vers un lien de fichier par défaut. Très souvent on tombe sur Bibliothèques\Documents.

Moi j'aimerai trouvé le moyen de renvoyer par défaut C:\Users\Public\Pictures\Sample Pictures.

J'ai donc pensé à coder si le chemin afficher pointe vers la bibliothèque rediriger vers "C:\Users\Public\Pictures\Sample Pictures".

Mais je ne vois pas comment récupérer ce lien (voir image).

lien par défaut :

lien par defaut

lien voulue :

lien voulue

Merci, de votre attention

Denis

Bonjour Denis123

Utilise ce code pour déterminer le chemin d'accès

' Code venant de
' https://excel.developpez.com/faq/?page=FichiersDir#RepertoiresSpeciaux

Sub CheminRepertoiresSpeciaux()
  'La liste des constantes pour afficher le chemin des autres dossiers spéciaux de Windows
  '&H5  = My Documents
  '&HC  = (Virtual) \My Documents\
  '&H27 = \My Documents\My Pictures
  '&H2E = \Documents
  '&HD  = \My Documents\My Music
  '&HE   = \My Documents\My Video
  '&H35 = My Music folder for all users
  '&H36 = My Pictures folder for all users
  '&H37 = My Video folder for all users

  Const Cible = &H27  '\My Documents\My Pictures
  Dim objShell As Object
  Dim objFolder As Object, objFolderItem As Object

  Set objShell = CreateObject("Shell.Application")
  Set objFolder = objShell.Namespace(Cible)
  Set objFolderItem = objFolder.Self

  MsgBox objFolderItem.Path
End Sub

A+

Salut Bruno,

J'ai beau essayé de tirer des réponses de ton code, mais je ne vois pas en quoi cela peut m'aider. Est ce que tu pourrais m'éclairer un peu plus.

Sinon je ne savais pas qu'il existai des dossiers spéciaux Windows. Et le code que je propose avec le dossier "Image" n'est qu'un exemple pour évité de mettre le vrai chemin d'accès que j'utilise.

Merci,

Re,

Alors je n'ai pas compris ta demande et je ne dois pas être le seul

Merci d'expliciter au maximum ta demande STP

A+

Je reprend,

En gros j'ai dans une macro qui demande à l'utilisateur d'allé chercher un fichier. Pour faciliter sa tâche je lui demande préalablement le numéro de son dossier. Comme ça au lancement de la fenêtre "msoFileDialogFilePicker" l'utilisateur tombe directement sur le dossier voulue.

Mais le problème est que si l'utilisateur entre un numéro de dossier qui n'existe pas. Le "msoFileDialogFilePicker" affichera par défaut au début la bibliothèque de l'utilisateur.

Donc j'aimerai trouver le moyen à ce moment-là d'afficher la racine des dossiers à sélectionner.

Pour cela j'avais pensé à récupérer le lien donné par "msoFileDialogFilePicker" à son ouverture. Mais si il y a d'autre idée je suis preneur !!!

Bonjour,

regarde l'aide sur Dir.

Si Dir(ton_fichier ou ton_chemin)="" alors il n'existe pas. Choisir ton chemin en fonction.

eric

Hmmm, c'est vrai que j'avais pas du tout pensé à vérifier que le chemin existait.

Merci Eriic,

Et voici mon code pour ceux qui veulent :

Sub pied()
Application.ScreenUpdating = True
num = InputBox("numero album")
chemin:
chemin = "C:\Users\Public\Pictures\Sample Pictures\album " & num & "\annee 2010"

   If Len(Dir(chemin, vbDirectory)) = 0 Then
      chemin = "C:\Users\Public\Pictures\Sample Pictures"
   End If

Set FenetreSelectionFichiers = Application.FileDialog(msoFileDialogFilePicker)
With FenetreSelectionFichiers
    .InitialFileName = chemin
    .AllowMultiSelect = True
    .Title = "Sélectionner l'album voulue..."
        If .Show <> -1 Then
            If MsgBox("Aucun album n'a été sélectionné...", vbRetryCancel + vbExclamation, "Demande de confirmation") = vbRetry Then
                GoTo chemin
            Else: Exit Sub
        End If
    End If
End With
End Sub

Merci à tous,

Cordialement, Denis

Rechercher des sujets similaires à "aide chemin acces fichier"