Vba : ouvrir fichier avec nom partiel

kurt63 Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   -
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
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 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
0