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 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