Vba : ouvrir fichier avec nom partiel

Fermé
kurt63 Messages postés 13 Date d'inscription dimanche 21 juin 2009 Statut Membre Dernière intervention 2 août 2024 - 27 avril 2022 à 06:55
yg_be Messages postés 23412 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 décembre 2024 - 27 avril 2022 à 12:07
Bonjour,

je souhaite via vba , ouvrir un fichier photo dont je ne connais que le début du nom

Ce début de nom sera inscrit dans une cellule avec liste déroulante
Le reste du nom peut être aléatoire avec ou sans espace
l’extension est connu.
Le nom complet du fichier existe en 2 extensions mais je ne souhaite en ouvrir qu'une seule

les fichiers sont dans plusieurs sous répertoires et je ne connais que le répertoire de base
exemple : je recherche le fichier c:azerty\querty\computer az er.tif
mais je ne connais que c:azerty\???????\computer??????.tif

l'ouverture du fichier se fera avec le logiciel par défaut
et je souhaite associer ce code avec un bouton

Pouvez vous me trouve un code vba que j'adapterai ?

Je suis sous excel pro plus 2013
le fichier excel ne se trouve pas au même endroit que le répertoire photo

merci d'avance

Configuration: Windows / Firefox 99.0

1 réponse

yg_be Messages postés 23412 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 décembre 2024 Ambassadeur 1 557
27 avril 2022 à 10:47
bonjour,
pour rechercher le fichier, tu peux t'inspirer de ceci:
https://forums.commentcamarche.net/forum/affich-37577571-vba-import-fichier-txt-depuis-un-dossier#7
0
yg_be Messages postés 23412 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 décembre 2024 1 557
27 avril 2022 à 10:54
0
yg_be Messages postés 23412 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 décembre 2024 1 557
27 avril 2022 à 12:05
un exemple plus proche de ce que tu veux faire:
Option Explicit

Private Function sisf(nomdossier As String, nomfichierachercher As String) As String
Dim fso As Scripting.FileSystemObject, dossier As Scripting.Folder, fichier As Scripting.File, sousdossier As Scripting.Folder
Set fso = New Scripting.FileSystemObject
Set dossier = fso.GetFolder(nomdossier)
sisf = ""
For Each sousdossier In dossier.SubFolders
    For Each fichier In sousdossier.Files
        If fichier.Name Like nomfichierachercher Then
            sisf = fichier.Path
            Exit Function
        End If
    Next fichier
Next sousdossier
End Function
Private Sub test()
Debug.Print ThisWorkbook.Path
Debug.Print "sisf:", sisf(ThisWorkbook.Path, "yg*.yg")
End Sub
0
yg_be Messages postés 23412 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 décembre 2024 1 557 > yg_be Messages postés 23412 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 28 décembre 2024
27 avril 2022 à 12:07
0