Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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...

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

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
 

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


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

 

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
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

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

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

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


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

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
 

Staple1600

XLDnaute Barbatruc
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)
 

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 :



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)
 

Staple1600

XLDnaute Barbatruc
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
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…