Ouvrir fichier pdf avec un chiffre contenu dans le nom du fichier

mokuht Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -  
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour forum,

je bloque sur le code ci dessous je ne trouve pas la solution
j'ai une combobox "Cbo_N°Facture" qui liste des numéros de 1 à (sans limite) qui correspondent à des numéros de factures.
Exemple du nom de mes fichiers (voir liste): -Facture N°1-nom de client N°112-01-04-19
Je voudrai a laide de mon bouton "ouvrir" pouvoir une fois le numéro sélectionné dans la combobox "Cbo_N°Facture" ouvrir le fichier PDF contenant ce numéro.



Private Sub CommandButton3_Click()

Dim Chemin As String
Dim NFichier As String

NFichier = "-Facture N°" & Cbo_N°Facture.Value

Chemin = "D:\WILLY\Devis-Factures-2019\FACTURES-PDF\Factures\"

'NFichier = "-Facture N°" & Range("F2") & "-" & Range("F9") & "-" & "Client N°" & Range("H2") & "-" & Format(Now, "dd-mm-yy") & ".pdf"


If Dir(Chemin & NFichier & "*.pdf") <> "" Then ThisWorkbook.FollowHyperlink Chemin & NFichier & "*.pdf"
Else: MsgBox "Fichier '" & NFichier & "' introuvable..."

End Sub


Merci pour votre aide


Configuration: Windows / Firefox 66.0
A voir également:

16 réponses

Kalissi Messages postés 218 Date d'inscription   Statut Membre Dernière intervention   20
 
Bonjour,

Tu n'est pas loin de la solution :

If Dir(Chemin & NFichier & ".pdf") <> "" Then ThisWorkbook.FollowHyperlink Chemin & NFichier & ".pdf"


Au moment de l'ouverture, l'Astérix ne peut être dans le nom du fichier. Ici l'astérix est un caractère qui spécifie n'importe quel caractère.

K
0
mokuht Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Bonsoir Kalissi

Merci pour ton attention
J'ai modifié mais ça ne fonctionne pas non plus.
1) il me bloque a ELSE
2) après suppression de ELSE me dit fichier introuvable




Private Sub CommandButton3_Click()

Dim Chemin As String
Dim NFichier As String

NFichier = "-Facture N°" & Cbo_N°Facture.Value

Chemin = "D:\WILLY\Devis-Factures-2019\FACTURES-PDF\Factures\"
'NFichier = "-Facture N°" & Range("F2") & "-" & Range("F9") & "-" & "Client N°" & Range("H2") & "-" & Format(Now, "dd-mm-yy") & ".pdf"

If Dir(Chemin & NFichier & ".pdf") <> "" Then ThisWorkbook.FollowHyperlink Chemin & NFichier & ".pdf"
: MsgBox "Fichier '" & NFichier & "' introuvable..."

End Sub
0
Kalissi Messages postés 218 Date d'inscription   Statut Membre Dernière intervention   20
 
Bonjour,

J'ai quelque peu modifier ton code mais celui-ci fonctionne sous Excel 2013 ...

Private Sub BtnExecuter_Click()

    Dim Chemin As String
    Dim NFichier As String

    'NFichier = "-Facture N" & cboNoFacture.Value
    NFichier = "MN" & cboNoFacture.Value '& ".pdf"

    'Chemin = "D:\WILLY\Devis-Factures-2019\FACTURES-PDF\Factures\"
    Chemin = "C:\Document\Dev\Excel_VBA\Test\"

    'NFichier = "-Facture N°" & Range("F2") & "-" & Range("F9") & "-" & "Client N°" & Range("H2") & "-" & Format(Now, "dd-mm-yy") & ".pdf"

    If Dir(Chemin & NFichier & "*.pdf") <> "" Then
        ThisWorkbook.FollowHyperlink Chemin & NFichier & ".pdf"
    Else
        MsgBox "Fichier '" & NFichier & "' introuvable..."
    End If

End Sub


Il est à noter, que je ne place jamais de caractères accentué dans le code ...
J'ai retirer le caractère "°", le caractère qui succède à "N" ... "-Facture N°"

K
0
mokuht Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour kalissi,
Je suis en déplacement je regarde ca demaon des mon retour .
Merci a toi
--
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mokuht Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Kalissi,
Merci pour ton retour

ce code fonctionne mais il ne prend en compte que le début du nom de fichier a savoir " -Facture No5"

le souci c'est que mes fichiers ne sont pas nommés comme ça :


mais plutôt comme ça :


-Facture N°5-Nom du client-Client N°113-01-04-19

avec cette ligne de code

NFichier = "-Facture N°" & Range("F2") & "-" & Range("F9") & "-" & "Client N°" & Range("H2") & "-" & Format(Now, "dd-mm-yy") & ".pdf"


donc le code suivant fonctionne bien mais pour cela il faudrait que je renomme tout mes fichiers
ce qui n'est pas possible parce que j'ai besoin des infos du titre lors de l'enregistrement du fichier.

Private Sub CommandButton3_Click()

Dim Chemin As String
Dim NFichier As String

NFichier = "-Facture No" & Cbo_NoFacture.Value
'NFichier = "MN" & cboNoFacture.Value '& ".pdf"

Chemin = "D:\WILLY\Devis-Factures-2019\FACTURES-PDF\Factures\"
'Chemin = "C:\Document\Dev\Excel_VBA\Test\"

'NFichier = "-Facture N°" & Range("F2") & "-" & Range("F9") & "-" & "Client N°" & Range("H2") & "-" & Format(Now, "dd-mm-yy") & ".pdf"

If Dir(Chemin & NFichier & ".pdf") <> "" Then
ThisWorkbook.FollowHyperlink Chemin & NFichier & ".pdf"
Else
MsgBox "Fichier '" & NFichier & "' introuvable..."
End If
End Sub
0
Kalissi Messages postés 218 Date d'inscription   Statut Membre Dernière intervention   20
 
Bonjour,

En fait, il te suffit de construire le nom du fichier pas à pas.
Je m'explique :

Au lieu de construire le nom au complet, construit le par étape dans un premier temps ...
NFichier = "-Facture N°" & Range("F2") & "-" & Range("F9") & "-" & "Client N°" & Range("H2") & "-" & Format(Now, "dd-mm-yy") & ".pdf"


NFichier = "-Facture N°" & Range("F2").Value


NFichier = "-Facture N°" & Range("F2").Value & "-" & Range("F9").Value


etc ...

Une fois que tu auras obtenu le bon nom de fichier, tu pourra refactoriser la ligne.

K
0
mokuht Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Si j'ai bien compris le code se décompose comme ça
ça ne fonctionne pas.


Private Sub EXPORT_FACTURE_PDF_Click()
Dim Chemin As String
Dim NFichier As String
'PDF
Chemin = "D:\WILLY\Devis-Factures-2019\FACTURES-PDF\Factures\"
'NFichier = "-Facture No" & Range("F2") & "-" & Range("F9") & "-" & "Client N°" & Range("H2") & "-" & Format(Now, "dd-mm-yy") & ".pdf"
NFichier = "-Facture No" & Range("F2").Value
NFichier = "-Facture No" & Range("F2") & "-" & Range("F9").Value
NFichier = "-Facture No" & Range("F2") & "-" & Range("F9") & "-" & "Client N°" & Range("H2").Value
NFichier = "-Facture No" & Range("F2") & "-" & Range("F9") & "-" & "Client N°" & Range("H2") & "-" & Format(Now, "dd-mm-yy") ' & ".pdf"

Worksheets("FACTURE").ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin & NFichier, Quality _
:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub
0
Kalissi Messages postés 218 Date d'inscription   Statut Membre Dernière intervention   20
 
Salut,

Je pensais que tu pourrais suivre les lignes en mode pas à pas.
Connais-tu le mode pas à pas (debug) sous l'éditeur de visual basic.

NFichier = "-Facture No" & Range("F2").Value
NFichier = "-Facture No" & Range("F2").Value & "-" & Range("F9").Value
NFichier = "-Facture No" & Range("F2"").Value) & "-" & Range("F9").Value & "-" & "Client N°" & Range("H2").Value
NFichier = "-Facture No" & Range("F2").Value & "-" & Range("F9").Value & "-" & "Client N°" & Range("H2").Value & "-" & Format(Now, "dd-mm-yy") ' & ".pdf"


Donc, si tu place un point d'arrêt à la première ligne :

NFichier = "-Facture No" & Range("F2").Value

NFichier doit être égale à [-Facture No[Valeur de la cellule F2]]

à la seconde ligne :

NFichier = "-Facture No" & Range("F2").Value & "-" & Range("F9").Value

NFichier doit être égale à [-Facture No[Valeur de la cellule F2]-[Valeur de la cellule F9]].

Le but bien sur est de s'assurer que le nom du fichier est bien construit.

note : NFichier = "-Facture No" & Range("F2").Value ~ NFichier = "-Facture No" & Range("F2")
Le point value [.Value] n'est qu'une façon explicite de capturer la valeur de la cellule.

Si tu as plus d'une feuille dans ton classeur, il est possible que tu doives spécifié la feuille :
NFichier = "-Facture No" & Sheets("MaFeuille").Range("F2").Value etc ...

K
0
mokuht Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Bonsoir kalissi,

Non je ne connais pas le mode pas à pas (debug) sous l'éditeur de visual basic.
en fait je ne connais pas grand chose au Vba.
le fichier je l'ai construis avec plusieurs personnes qui m'ont aidé comme tu le fait
j'ai adapté les codes et les exemples qui m'ont été fourni pour en arrivé là.

j'ai passer beaucoup de temps à le construire mais sur ce dernier point je bloque et si je ne trouve pas de solution j'abandonnerai cette idée.

en tout cas je te remercie pour le temps que tu y consacre.

j'ai essayer de bidouiller le code dans tous les sens mais sans résultat.
0
Kalissi Messages postés 218 Date d'inscription   Statut Membre Dernière intervention   20
 
Bonjour,

Je vais tenter de t'expliquer comment faire le mode pas à pas.

1.) Ouvrir VBE (Visual Basic Editor).
2.) Dans la fenêtre du code, tu place ton curseur sur le première ligne de code de la méthode.

NFichier = "-Facture No" & Range("F2").Value


À gauche de cette ligne, clic sur la barre de défilement qui n'existe pas à gauche.
Un point noir devrait apparaitre et toute la ligne sera surligné.
Dans la barre d'outils, tu devrait repérer un petit triangle vert, c'est le "run".

Une fois le programme lancé, il s'arrêtera là où tu as mis un point d'arrêt.
Ensuite à l'aide de la touche "F8" ou l'icone de la barre d'outils "pas à pas détaillé",
tu suivra l'exécution ligne par ligne.

Il m'apparait évident que c'est la construction du nom de fichier qui est le problème.
Et avec le mode pas à pas, tu devrait trouver le problème.
Lorsque le programme est en mode pas à pas, tu peux cliquer sur une variable, clic droit,
menu contextuel, "Ajouter un espion", ainsi tu pourra suivre aisément la construction du nom de fichier.

Je continue de suivre le fil ...

K
0
mokuht Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour kalissi

Malgré tes explications je ne m'en sors pas j'ai le cerveau qui fume
eh oui suis pas doué !

je te transmet le lien pour telecharger mon fichier si tu n'y vois d’inconvénient et si le cœur tant dit.

https://1fichier.com/?bvvykd64ig5br2rqyddj
0
Kalissi Messages postés 218 Date d'inscription   Statut Membre Dernière intervention   20
 
Salut,

Je regarde et te reviens ...

K
0
Kalissi Messages postés 218 Date d'inscription   Statut Membre Dernière intervention   20
 
Salut,

désolé, je ne réussi pas à télécharger le fichier ...
j'ai essayé de deux endroits différents ...
mais rien n'y fait ...

et je n'ai pas vraiment le goût d'ouvrir la sécurité sur mes machines ...
peut-être un nouvel essai ici : https://www.cjoint.com/

n.b. évite les données sensibles

K
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

Kalissi
J'ai retirer le caractère "°", le caractère qui succède à "N" ... "-Facture N°"

En effet dans du code oui, mais dans du texte pas de probleme.

mokuht
Une idee aussi sote que grenue, le fichier existe reelement au moins???
Car votre code marche au detail pres de la ligne du dessus
0
mokuht Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour Kalissi

le fichier est nettoyé de toutes données sensibles

j'ai effectivement enlevé les "°" et remplacé comme tu me l'a dit par "o" minuscule

et pour répondre à ta question oui les fichiers existent tu les as en haut du fil
et le chemin repertoire aussi

sauf que maintenant je les ai renommé avec le "o"
comme ceci : -Facture No5-Nom du client-Client N°113-01-04-19

voici le fichier complet avec mes 2 types de devis ou j'ai adapté les codes pour chacun d'entre eux.

https://www.cjoint.com/c/IErgZFtxbLT

Merci a toi.
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

Oui, mais y a toujours un probleme ou pas!!!!!!!!
0
mokuht Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour oui le problème persiste
--
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,
Si personne ne prend la suite, je regarde la chose demain matin
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,
CLIENTA et B surement pareil:
A quoi sert de faire un choix avec votre combobox si vous prenez les valeurs dans DEVISA avec en plus la date du jour pour afficher un PDF autre ?????????????????????????????????????????????????????????

Suite:
Si numero de facture unique

Private Sub CmD_Affiche_PDF_Click()
    Dim Chemin As String
    Dim NFichier As String
    Dim Nomclient, N?client As String, Fichier
    
    NFichier = "-Facture No" & Cbo_NoFacture.Value & "*.pdf"
    Chemin = "D:\WILLY\Devis-Factures-2019\FACTURES-PDF\Factures\"
    If Dir(Chemin & NFichier) <> "" Then
        Fichier = Dir(Chemin & NFichier)
        ThisWorkbook.FollowHyperlink Chemin & Fichier
    Else
        MsgBox "Fichier '" & NFichier & "' introuvable..."
    End If
End Sub
0
mokuht Messages postés 13 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour et merci pour le code
ça fonctionne très bien
Désolé de ne pas avoir construit ce fichier dans les règles.
je l'ai pensé au fur et à mesure sans savoir jusqu’où je pourrai aller, et essayé de l’améliorer au coup par coup en tant que néophyte.
le fonctionne parfaitement.



Merci pour ton temps.
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

Désolé de ne pas avoir construit ce fichier dans les règles.
Pas grave, y a pas d'lezard
0