J'utilise Application.GetOpenFilename pour ouvrir une fenêtre et récupérer le chemin complet d'un fichier que j'inscris dans une textbox d'un formulaire. Ce même formulaire me permet l'envoi d'un mail avec une pièce jointe directement depuis mon fichier excel.
J'aimerais quand j'utilise cette fonction pouvoir filtrer les fichiers dont le nom commence par F pour limiter les choix de sélection dans le dossier (voir capture en pièce jointe).
Je clique sur mon bouton, j'ai ma fenêtre qui s'ouvre avec tous les fichiers contenus dans le dossier. Dans la seconde capture, j'ai tapé f* pour n'avoir que la liste des fichiers qui commencent par f.
Sauf que j'ai été obligé de le taper, je me demandais s'il y avait une possibilité que s'affiche la fenêtre directement avec le filtre sur le nom des fichiers commençant par f actif.
Merci d'avance pour votre aide et bonnes fêtes de fin d'année.
Dim fd As FileDialog
Dim FileName As String
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.Filters.Clear
.Filters.Add "Fichiers Excel", "*.xls*"
.Title = "Sélectionnez le document"
.InitialFileName = ActiveWorkbook.Path & "\f*.xls*"
End With
If fd.Show = True Then FileName = fd.SelectedItems(1)
If Not fd Is Nothing Then Set fd = Nothing
Merci pour le retour. La solution ne semble pas fonctionner. Je précise que les fichiers recherchés sont des pdf parmi plusieurs pdf, je veux isoler les pdf qui commencent par la lettre f du coup. j'ai donc adapté en conséquence votre code mais rien n'y fait. J'ai pas de filtre qui s'applique. Ai je mal fait ???
VB:
'Affiche la boîte de dialogue Ouvrir
FileToOpen = Application.GetOpenFilename("Text Files (f*.pdf), f*.pdf", Title:="Sélectionnez la facture")
If FileToOpen <> False Then
'MsgBox "Open " & fileToOpen
TextBox9.Value = FileToOpen
End If
Merci pour le retour. La solution ne semble pas fonctionner. Je précise que les fichiers recherchés sont des pdf parmi plusieurs pdf, je veux isoler les pdf qui commencent par la lettre f du coup. j'ai donc adapté en conséquence votre code mais rien n'y fait. J'ai pas de filtre qui s'applique. Ai je mal fait ???
VB:
'Affiche la boîte de dialogue Ouvrir
FileToOpen = Application.GetOpenFilename("Text Files (f*.pdf), f*.pdf", Title:="Sélectionnez la facture")
If FileToOpen <> False Then
'MsgBox "Open " & fileToOpen
TextBox9.Value = FileToOpen
End If
re-bonjour,
la variante FileDialog marche très bien.
Avec GetOpenFileName, je n'avais pas testé, je viens de le faire et, effectivement, ça ne marche pas.
Mais vous disposez déjà d'une solution qui marche avec FileDialog.
Cordialement,
re-bonjour,
la variante FileDialog marche très bien.
Avec GetOpenFileName, je n'avais pas testé, je viens de le faire et, effectivement, ça ne marche pas.
Mais vous disposez déjà d'une solution qui marche avec FileDialog.
Cordialement,
D'accord, je viens d'essayer par contre avec Filedialog je n'arrive pas dans un répertoire que j'avais défini via une ligne de commande chdir avant ma ligne getopenfilename. Comment puis je faire pour arriver dans le répertoire souhaité qui n'est pas le même ???
D'accord, je viens d'essayer par contre avec Filedialog je n'arrive pas dans un répertoire que j'avais défini via une ligne de commande chdir avant ma ligne getopenfilename. Comment puis je faire pour arriver dans le répertoire souhaité qui n'est pas le même ???
Remplacez ActiveWorkbook.Path par une variable de type chaîne de caractères ($) contenant le chemin qui vous intéresse ou par la chaîne elle-même.
Par exemple
Remplacez ActiveWorkbook.Path par une variable de type chaîne de caractères ($) contenant le chemin qui vous intéresse ou par la chaîne elle-même.
Par exemple