Je reviens vers vous, car je souhaiterai ouvrir un fichier pdf depuis un Userform qui est équipé d'un bouton "ouvrir le llien"
Pour ce faire j'ai une fonction qui est appelé dans la procédure du bouton.
le hic, c'est que je n'arrive pas à ouvrir le fichier car la variable "NomFichier" qui doit prendre l'adresse du fichier à ouvrir, reste vide
La comboBox30 quand à elle prend bien le nom du fichier à ouvrir
voici mon code :
Sub Ouvrir_Fichier()
'
'DECLARATION DES VARIABLES
Dim ws As Worksheet
Dim Chemin As String
Dim NomFichier As String
Dim Valeur_Combo30
Valeur_Combo30 = ComboBox30.Value
Set ws = ActiveSheet
Chemin = ThisWorkbook.Path & Application.PathSeparator
NomFichier = ws.Range("Valeur_Combo30") & ".pdf" '<- après débogage, cette ligne est en jaune
ThisWorkbook.FollowHyperlink Chemin & NomFichier
Set ws = Nothing
End Sub
De plus, je souhaiterai savoir comment faire pour gérer l'erreur si le fichier n'existe pas dans le dossier concerné
(faire apparaitre une msgbox : "le fichier est introuvable"
Re
Fais ce petit test (en faisant les adaptations nécessaires comme expliqué dans la macro)
Normalement le PDF doit s'ouvrir.
Est-ce le cas sur ton PC?
NB: Pour le test 2, il faut qu'il existe un PDF nommé test.pdf dans le même répertoire que celui où tu enregistrer un classeur contenant cette macro de test
Le fichier PDF dans être dans le répertoire où est le classeur (et non pas dans un sous-dossier de ce répertoire)
Donc si tu testes avec des fichiers de test à savoir:
•Un classeur contenant mes deux macros enregistré dans un dossier nommé Tests par exemple
• un fichier PDF nommé Test.pdf lui-aussi stocké dans le dossier Tests.
Le fichier Test.pdf doit s'ouvrir avec l'une ou l'autre de mes deux macros et tu dois avoir aucune erreur.
J'ai pourtant précisé les conditions de test pour que cela fonctionne...
Le fichier PDF dans être dans le répertoire où est le classeur (et non pas dans un sous-dossier de ce répertoire)
Donc si tu testes avec des fichiers de test à savoir:
•Un classeur contenant mes deux macros enregistré dans un dossier nommé Tests par exemple
• un fichier PDF nommé Test.pdf lui-aussi stocké dans le dossier Tests.
Le fichier Test.pdf doit s'ouvrir avec l'une ou l'autre de mes deux macros et tu dois avoir aucune erreur.
En mettant le fichier dans le même dossier, l'erreur apparaît plus tôt, par contre en laissant le fichier dans un sous dossier (j'ai rectifié le test 2 car j'avais omis de modifier le nom du fichier) et ça donne ça :
et l'erreur est
Désolé si je ne comprend pas tout mais je suis novice en VBA
Merci pour ton aide
Tu ne lis pas attentivement ce que j'écris
Je t'ai indiqué de copier mes macros, (il y en a deux) telles quelles
(en changeant seulement le nom du répertoire)
Or ta copie d'écran ne montre pas cela.
Donc je répète;
Dans un classeur vierge, copie, les deux macros qui sont dans le message#9
Ne change que la variable nommée zPDF
(en mettant le chemin du dossier de ton choix avec comme nom de fichier test..pdf)
Il faut évidemment qu'il y ait un fichier PDF qui se nomme Test.pdf
Ensuite enregistre ce classeur dans le dossier où se trouve Test.pdf
Puis lance la macro nommée: Sub Test_PDF_1
Le PDF doit s'ouvrir dans Acrobat
>Fermes le
Puis lance la macro nommée: Sub Test_PDF_2
Le PDF doit s'ouvrir dans Acrobat
>Fermes le
Tu ne lis pas attentivement ce que j'écris
Je t'ai indiqué de copier mes macros, (il y en a deux) telles quelles
(en changeant seulement le nom du répertoire)
Or ta copie d'écran ne montre pas cela.
Donc je répète;
Dans un classeur vierge, copie, les deux macros qui sont dans le message#9
Ne change que la variable nommée zPDF
(en mettant le chemin du dossier de ton choix avec comme nom de fichier test..pdf)
Il faut évidemment qu'il y ait un fichier PDF qui se nomme Test.pdf
Ensuite enregistre ce classeur dans le dossier où se trouve Test.pdf
Puis lance la macro nommée: Sub Test_PDF_1
Le PDF doit s'ouvrir dans Acrobat
>Fermes le
Puis lance la macro nommée: Sub Test_PDF_2
Le PDF doit s'ouvrir dans Acrobat
>Fermes le
Tu ne lis pas attentivement ce que j'écris
Je t'ai indiqué de copier mes macros, (il y en a deux) telles quelles
(en changeant seulement le nom du répertoire)
Or ta copie d'écran ne montre pas cela.
Donc je répète;
Dans un classeur vierge, copie, les deux macros qui sont dans le message#9
Ne change que la variable nommée zPDF
(en mettant le chemin du dossier de ton choix avec comme nom de fichier test..pdf)
Il faut évidemment qu'il y ait un fichier PDF qui se nomme Test.pdf
Ensuite enregistre ce classeur dans le dossier où se trouve Test.pdf
Puis lance la macro nommée: Sub Test_PDF_1
Le PDF doit s'ouvrir dans Acrobat
>Fermes le
Puis lance la macro nommée: Sub Test_PDF_2
Le PDF doit s'ouvrir dans Acrobat
>Fermes le
Relis mon précédent message...
Je parle de test.pdf pas de TOTO.pdf
Et je disais de copier les macros (sans les modifier; sauf la variable zPDF)
Et j'ai parlé d'un répertoire sans sous-dossiers
Donc si tu suis scrupuleusement mes indications, il ne doit pas y avoir d'erreur.
(Puisque je n'en ai pas sur mon PC équipé de Windows)
Et encore une fois, il ne s'agit que d'un test
Donc à réaliser sur un classeur vierge (comme déjà indiqué)
Le fil va devenir une pelote, mais c'est pas grave
(J'ai le temps on est dimanche )
Juste par curiosité, qu'affiche cette petite macro sur ton ordi?
Code:
Sub TestZ()
Dim Chemin$
Chemin= ThisWorkBook.Path & "\"
MsgBox Chemin
End Sub
Relis mon précédent message...
Je parle de test.pdf pas de TOTO.pdf
Et je disais de copier les macros (sans les modifier; sauf la variable zPDF)
Et j'ai parlé d'un répertoire sans sous-dossiers
Donc si tu suis scrupuleusement mes indications, il ne doit pas y avoir d'erreur.
(Puisque je n'en ai pas sur mon PC équipé de Windows)
Et encore une fois, il ne s'agit que d'un test
Donc à réaliser sur un classeur vierge (comme déjà indiqué)
Le fil va devenir une pelote, mais c'est pas grave
(J'ai le temps on est dimanche )
Juste par curiosité, qu'affiche cette petite macro sur ton ordi?
Code:
Sub TestZ()
Dim Chemin$
Chemin= ThisWorkBook.Path & "\"
MsgBox Chemin
End Sub
Tout d'abord, merci pour ta patience et ton indulgence
Je vais de ce pas, réparer mes erreurs (novice un jour, novice toujours .... nan car qui va doucement va loin )
je teste et je reviens (merci encore pour ta patience)
Relis mon précédent message...
Je parle de test.pdf pas de TOTO.pdf
Et je disais de copier les macros (sans les modifier; sauf la variable zPDF)
Et j'ai parlé d'un répertoire sans sous-dossiers
Donc si tu suis scrupuleusement mes indications, il ne doit pas y avoir d'erreur.
(Puisque je n'en ai pas sur mon PC équipé de Windows)
Et encore une fois, il ne s'agit que d'un test
Donc à réaliser sur un classeur vierge (comme déjà indiqué)
Le fil va devenir une pelote, mais c'est pas grave
(J'ai le temps on est dimanche )
Juste par curiosité, qu'affiche cette petite macro sur ton ordi?
Code:
Sub TestZ()
Dim Chemin$
Chemin= ThisWorkBook.Path & "\"
MsgBox Chemin
End Sub
Relis mon précédent message...
Je parle de test.pdf pas de TOTO.pdf
Et je disais de copier les macros (sans les modifier; sauf la variable zPDF)
Et j'ai parlé d'un répertoire sans sous-dossiers
Donc si tu suis scrupuleusement mes indications, il ne doit pas y avoir d'erreur.
(Puisque je n'en ai pas sur mon PC équipé de Windows)
Et encore une fois, il ne s'agit que d'un test
Donc à réaliser sur un classeur vierge (comme déjà indiqué)
Le fil va devenir une pelote, mais c'est pas grave
(J'ai le temps on est dimanche )
Juste par curiosité, qu'affiche cette petite macro sur ton ordi?
Code:
Sub TestZ()
Dim Chemin$
Chemin= ThisWorkBook.Path & "\"
MsgBox Chemin
End Sub
Tu peux écrire ce que renvoie exactement le MsgBox?
Car l'erreur doit forcément venir de quelque part dans le code?
(ou le chemin renvoyée par le MsgBox pointe vers un fichier PDF qui n'existe pas)
Tu peux écrire ce que renvoie exactement le MsgBox?
Car l'erreur doit forcément venir de quelque part dans le code?
(ou le chemin renvoyée par le MsgBox pointe vers un fichier PDF qui n'existe pas)
Par contre j'ai une petite question : N'est-il pas possible de trouver un code qui permet de lire dans un sous-dossier ? (car j'aurai souhaité mettre mes pdf dans un sous dossier)
Et le Msgbox et le ComboBox30 renvoient donc exactement la même chose?
Il y a de nombreux exemples dans les archives du forum avec du code VBA qui permet de choisir avec l'explorateur Windows vers quel dossier enregistré un fichier
Je te laisse faire les recherches
C'est ici que cela se passe