Ouvrir un fichier pdf dont on ne connait qu'une partie du nom

Bonjour les excellents!

je suis sur un nouveau projet ou je doit aller chercher un fichier pdf et l'ouvrir en focntion d'une selection user form

j'en suis la du code

public itemax as single

Sub openfile()
Dim path, supl As String
Dim i, j As Integer

UserForm2.Show

Sheets("Antennes").Activate
j = Range("A" & Rows.Count).End(xlUp).Row
If IsError(Application.VLookup(itemax, Range("A2:D" & j), 4, 0)) Then
supl = ""
GoTo 1
End If

supl = Application.VLookup(itemax, Range("A2:D" & j), 4, 0)

If supl = "jaja" Then path = "\\chemin1"
If supl = "jojo" Then path = "\\chemin2"
If supl = "juju" then path="\\chemin3"
1
If supl = "" Then MsgBox "supl inconnu"

CreateObject("Shell.Application").Open (path & "\" & itemax & " - plein demotsclefs.pdf")

End Sub

je récupère "itemax" via un userform et "path" est choisi en fonction d'une correspondance dans la worksheet "antennes"

mon problème est que pour ouvrir le pdf je dois apparement donner le titre précis et exact du document qui se compose comme suit

itemax -pleins de mots clef.pdf

or moi je ne peux connaitre que itemax et (evidement) ne vais pas renommer tous les fichier pour ne garder que itemax.pdf

j'ai essayé sans succès avec

CreateObject("Shell.Application").Open (path & "\" & itemax & "*.pdf")

des idées?

Bonjour,

Je te suggère de parcourir les pdf dans le dossier associé à ton path. Lorsqu'un pdf correspond à ton itemax, tu arrêtes de parcourir les fichiers et tu l'ouvres.

Exemple avec une fonction perso (non testée) :

Function GetNomFichier(ByVal MotCle As String, ByVal Extension As String, ByVal Chemin As String) As String

Dim Fichier As String, Correspondance As Boolean

Fichier = Dir(Chemin & "*." & Extension)
Do While Len(Fichier) > 0 And Not Correspondance 'Boucle sur les fichiers
    If Fichier Like "*" & MotCle & "*" Then Correspondance = True Else Fichier = Dir() 'Correspondance partielle
Loop
If Correspondance Then GetNomFichier = Chemin & Fichier

End Sub
'Exemple utilisation :
NomFichier = GetNomFichier(itemax, "pdf", path & "\")
If NomFichier <> "" Then CreateObject("Shell.Application").Open NomFichier

Globalement ça marche pas mal, j'ai du ajouter une sortie de loop avant

'Correspondance partielle
    Fichier = Dir()

car sinon ça m'incrémentait le fichier d'après avant de sortir de la boucle, j'ai aussi ajouté une vérif sur les itemax absent de mes dossiers

mais sinon ça roule merci

Bien vu, tu peux aussi le faire en plaçant l'instruction Fichier = Dir() dans la structure If, après un Else :

If Fichier Like "*" & MotCle & "*" Then Correspondance = True Else Fichier = Dir()

Ceci évite l'écrasement du contenu de la variable fichier lors d'une correspondance positive.

Rechercher des sujets similaires à "ouvrir fichier pdf connait partie nom"