Ouvrir un fichier pdf impossible car la variable ne prend pas la valeur de l'adresse

Fariri

XLDnaute Junior
Bonjour,

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"

merci pour votre aide
 

Staple1600

XLDnaute Barbatruc
Re

J'ai pourtant précisé les conditions de test pour que cela fonctionne...
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.
 

Fariri

XLDnaute Junior
Re

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 :

1028230


et l'erreur est

1028231


Désolé si je ne comprend pas tout mais je suis novice en VBA
Merci pour ton aide
 

Staple1600

XLDnaute Barbatruc
Re

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
 

Fariri

XLDnaute Junior
Re

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
Re

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


Voilà j'ai fait ce que tu m'as demandé et pour le premier test, le fichier s'ouvre tandis que pour le deuxième j'ai une erreur sur la dernière ligne

1028233
 

Staple1600

XLDnaute Barbatruc
Re

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
 

Fariri

XLDnaute Junior
Re

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)
 

Fariri

XLDnaute Junior
Re

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

:D RESPECT
Je viens de re-re-....recommencer et tout s'ouvre correctement, MERCI :D

Maintenant que tous fonctionne il me reste à remplacer test par la combobox30 ?? :rolleyes:

ce qui donne :


Dim Chemin$, Fichier$

Chemin = ThisWorkbook.Path & "\"
Fichier = "comboBox30.pdf" <-------------------------------------------- ????
ThisWorkbook.FollowHyperlink Chemin & Fichier, , True, False
 

Staple1600

XLDnaute Barbatruc
Re

Maintenant, tu peux déjà répondre à ma précédente question ;)
Concernant la macro TestZ...

Ensuite à partir, de là, si j'étais moi, j'utiliserai un MsgBox (comme dans la macro TestZ)
mais pour tester ce que renvoie la valeur du ComboBox30
 

Fariri

XLDnaute Junior
Re

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


Désolé de n'avoir pas répondu avant, quand je fait le TestZ, une message Box s'ouvre avec le chemin d'accès de la macro + du fichier pdf
 

Fariri

XLDnaute Junior
Re

Maintenant, tu peux déjà répondre à ma précédente question ;)
Concernant la macro TestZ...

Ensuite à partir, de là, si j'étais moi, j'utiliserai un MsgBox (comme dans la macro TestZ)
mais pour tester ce que renvoie la valeur du ComboBox30

je vais écouter ton conseil et essayé de faire la suite comme tu l'indiques

encore MERCI POUR TON AIDE, TA PATIENCE ET TON INDULGENCE

Je te dirai si j'y suis arrivée ;)
 

Fariri

XLDnaute Junior
Re

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)

La message Box indique le chemin d'accès :

1028244


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)
 

Discussions similaires

Statistiques des forums

Discussions
312 152
Messages
2 085 787
Membres
102 973
dernier inscrit
docpod