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
 

eriiic

XLDnaute Barbatruc
Bonjour,

ws.Range("Valeur_Combo30") n'a aucun sens si c'est le nom du pdf. Essaie avec :
VB:
NomFichier = Valeur_Combo30 & ".pdf"
mais bon, la variable n'est pas vraiment indispensable. Utilise directement ComboBox30.Value

De plus, je souhaiterai savoir comment faire pour gérer l'erreur si le fichier n'existe pas dans le dossier concerné
Fait un Dir(chemin et nomFichier) avant.
Si ="" alors il n'existe pas
eric
 

Fariri

XLDnaute Junior
Bonjour

Et comme ceci, cela donne quoi?
NomFichier = Valeur_Combo30 & ".pdf"

EDITION: Houps, désolé pour la collision, eriiiic ;)

Tout d'abord, merci à vous deux d'avoir pris le temps de répondre à mes questions.
J'ai procédé comme dit ci-dessus et ça donne ceci (ce que vous m'avez conseillé c'est ok par contre j'ai une erreur à la ligne suivante)


Sub Ouvrir_Fichier()
'
'DECLARATION DES VARIABLES
Dim ws As Worksheet
Dim Chemin As String
Dim NomFichier As String



Set ws = ActiveSheet
Chemin = ThisWorkbook.Path & Application.PathSeparator
NomFichier = ComboBox30.Value & ".pdf"

ThisWorkbook.FollowHyperlink Chemin & NomFichier '<- après débogage, cette ligne est en jaune (l'erreur recule, ou avance ; tout dépend du point de vue)

Set ws = Nothing

End Sub

voilà la photo de l'erreur :
1028221


Je travaille sur ACROBAT READER DC 18.01.12
merci
 

Fariri

XLDnaute Junior
Pour une fois je ne termine pas bon dernier avec 1/4h dans la vue :)
Tout d'abord, merci à vous deux d'avoir pris le temps de répondre à mes questions.
J'ai procédé comme dit ci-dessus et ça donne ceci (ce que vous m'avez conseillé c'est ok par contre j'ai une erreur à la ligne suivante)


Sub Ouvrir_Fichier()
'
'DECLARATION DES VARIABLES
Dim ws As Worksheet
Dim Chemin As String
Dim NomFichier As String



Set ws = ActiveSheet
Chemin = ThisWorkbook.Path & Application.PathSeparator
NomFichier = ComboBox30.Value & ".pdf"

ThisWorkbook.FollowHyperlink Chemin & NomFichier '<- après débogage, cette ligne est en jaune (l'erreur recule, ou avance ; tout dépend du point de vue)

Set ws = Nothing

End Sub

voilà la photo de l'erreur :
1028222


Je travaille sur ACROBAT READER DC 18.01.12
merci
 

Staple1600

XLDnaute Barbatruc
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
VB:
Sub Test_PDF()
Dim zPDF$, Chemin$, Fichier$
'zPDF = "C:\Users\XLDForum\Tests\Test.pdf"
'Remplace la valeur de zPDF par un chemin et nom de PDF valide (qui existent sur ton disque dur)
'test 1 OK
'ThisWorkbook.FollowHyperlink zPDF, , True, False

'test 2 OK
Chemin = ThisWorkbook.Path & "\"
Fichier = "Test.pdf"
ThisWorkbook.FollowHyperlink Chemin & Fichier, , True, False
End Sub

PS: Ce que nous t'avions conseillé, c'était:
NomFichier = ComboBox30 & ".pdf"
et non pas
NomFichier = ComboBox30.Value & ".pdf"
 

Fariri

XLDnaute Junior
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
VB:
Sub Test_PDF()
Dim zPDF$, Chemin$, Fichier$
'zPDF = "C:\Users\XLDForum\Tests\Test.pdf"
'Remplace la valeur de zPDF par un chemin et nom de PDF valide (qui existent sur ton disque dur)
'test 1 OK
'ThisWorkbook.FollowHyperlink zPDF, , True, False

'test 2 OK
Chemin = ThisWorkbook.Path & "\"
Fichier = "Test.pdf"
ThisWorkbook.FollowHyperlink Chemin & Fichier, , True, False
End Sub

PS: Ce que nous t'avions conseillé, c'était:
NomFichier = ComboBox30 & ".pdf"
et non pas
NomFichier = ComboBox30.Value & ".pdf"


MERCI pour la proposition

voila ce que ça donne : (j'ai mis en jaune ce qui est passé en jaune quand j'ai appuyé sur débogage)


1028225
 

Staple1600

XLDnaute Barbatruc
RE

Il fallait décommenter la ligne qui commence par zPDF
Et il faut faire chaque test de syntaxe un par un.
Cela devrait être plus clair ainsi rédigé ;)
Normalement le PDF doit s'ouvrir dans les deux cas.
Code:
Sub Test_PDF_1()
Dim zPDF$
zPDF = "C:\Users\XLDForum\Tests\Test.pdf"
'Remplace la valeur de zPDF par un chemin et nom de PDF valide (qui existent sur ton disque dur)
'test 1 OK
ThisWorkbook.FollowHyperlink zPDF, , True, False
End Sub
Sub Test_PDF_2()
Dim Chemin$, Fichier$
'test 2 OK
Chemin = ThisWorkbook.Path & "\"
Fichier = "Test.pdf"
ThisWorkbook.FollowHyperlink Chemin & Fichier, , True, False
End Sub
 

Fariri

XLDnaute Junior
:D
RE

Il fallait décommenter la ligne qui commence par zPDF
Et il faut faire chaque test de syntaxe un par un.
Cela devrait être plus clair ainsi rédigé ;)
Normalement le PDF doit s'ouvrir dans les deux cas.
Code:
Sub Test_PDF_1()
Dim zPDF$
zPDF = "C:\Users\XLDForum\Tests\Test.pdf"
'Remplace la valeur de zPDF par un chemin et nom de PDF valide (qui existent sur ton disque dur)
'test 1 OK
ThisWorkbook.FollowHyperlink zPDF, , True, False
End Sub
Sub Test_PDF_2()
Dim Chemin$, Fichier$
'test 2 OK
Chemin = ThisWorkbook.Path & "\"
Fichier = "Test.pdf"
ThisWorkbook.FollowHyperlink Chemin & Fichier, , True, False
End Sub


Merci, super, le fichier s'est ouvert :D

il reste une nano erreur cependant :
La ligne s'est mise en jaune :

1028227



et le code erreur est :

1028226
 

Staple1600

XLDnaute Barbatruc
Re

Ca veut dire que ces macros ne servent qu'à faire des tests pour isoler l'erreur.
Elles ne sont pas à utiliser telles quelles dans ton fichier réel.

Où est situé le fichier PDF nommé test.pdf sur ton PC?
Où est situé le classeur contenant les macros que je t'ai posté?

PS: Tu as bien fait tes tests avec les deux dernières macros postées?
Celles du message#9 ?
 

Fariri

XLDnaute Junior
Re

Ca veut dire que ces macros ne servent qu'à faire des tests pour isoler l'erreur.
Elles ne sont à utiliser telles quelles dans ton fichier réel.

Où est situé le fichier PDF nommé test.pdf sur ton PC?
Où est situé le classeur contenant les macros que je t'ai posté?


Le fichier Test est situé dans le même dossier que les fichiers que je dois ouvrir,
le classeur est situé dans un dossier et dans ce même dossier il y a plusieurs dossier et parmi ceux-ci le dossier contentant le fichier Test.

merci
 

Discussions similaires

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 811
dernier inscrit
caroline29260