Ouvrir un pdf

Résolu
Tiatia63 Messages postés 60 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 23 décembre 2010 - 9 juil. 2007 à 10:05
Tiatia63 Messages postés 60 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 23 décembre 2010 - 10 juil. 2007 à 09:37
Bonjour,
Je voudrais ouvrir un fichier pdf.
Alors j'explique. Je l'avais fait avec excel et en fait je préfère utiliser des fiches pdf.
Toutes les fiches sont dans un répertoire D:.....\Fiches Matières
Voilà ce que j'ai programmé:
Dim i As Variant
Dim nuance As String



i = 0
For i = 0 To 20
    If UsfRésultats.ListBox2.Selected(i) = True Then
        nuance = UsfRésultats.ListBox2.List(i)
        Shell "C:\Program Files\...\AcroRd32.exe" + " " + "D:\...\Fiches Matières\nuance.pdf"
        Exit For
    End If
Next i

Donc en fait, "nuance" change en fonction de ce que l'utilisateur choisi. C'est une chaine de caractère et elle correspond aux noms de mes pdf.
Je voudrais donc que la fiche nuance.pdf s'ouvre.
Alors quand je mets un fichier pdf précis ça marche mais quand je mets la variable "nuance", acrobate s'ouvre mais me dit que le fichier est introuvable.
Pourquoi
Si vous pouvez m'aider...
Merci!

10 réponses

lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 7
10 juil. 2007 à 08:52
Hello,

Heuu je n'ai pas cette erreur chez moi essaye de mettre un public devant la déclaration du ShellExecute.
Lors de l'appel tu peux essayer aussi en mettant ShellExecute 0, "open", Fichier, vbNullString, Chemin, 1
Avant l'appel à la fonction tu peux également faire un MsgBox de la variable fichier pour vérifier que tu récupères un chaîne correcte..
3
lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 7
9 juil. 2007 à 10:23
Bonjour,

si nuance est une variable texte , il faut rajouter des & :
"D:\...\Fiches Matières" & nuance & ".pdf"
0
Tiatia63 Messages postés 60 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 23 décembre 2010
9 juil. 2007 à 10:41
J'ai mis:
Shell ("C:\Program Files\...\AcroRd32.exe" + " " + "D:\....\Fiches Matières\&nuance&.pdf")
et ça marche toujours pas!! ca me mrque toujours la meme erreur! et si je mets 
Shell ("C:\Program Files\...\AcroRd32.exe" + " " + "D:\....\Fiches Matières"&nuance&".pdf")
ca me le prend pas!

Aidez moi!
0
lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 7
9 juil. 2007 à 11:08
Re,

Sinon tu peux utiliser la fonction shellexecute qui a l'avantage de ne pas être obligé de connaître le chemin d'acrobat reader :

Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Dim nuance As String, Fichier As String
Chemin="C:\monpath"
nuance = "tondoc.pdf"
Fichier = Chemin & nuance

ShellExecute Me.hWnd, "open", Fichier, vbNullString, Chemin, 1


End Sub
0

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

Posez votre question
Tiatia63 Messages postés 60 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 23 décembre 2010
9 juil. 2007 à 11:36
Voilà!!! ayéé!!! j'ai trouvé la solution.
Dim i As Variant
Dim nuance As String
programme = "C:\Program Files...\AcroRd32.exe"
dossier = "D:\...\Fiches Matières"
i = 0
For i = 0 To 20
    If UsfRésultats.ListBox2.Selected(i) = True Then
        nuance = UsfRésultats.ListBox2.List(i)
        Shell (programme + " " + dossier + nuance + ".pdf")
        Exit For
    End If
Next i

Merci de votre aide. Meme si j'ai pas fait exactement pareil ça m'a bien aidé!
0
Tiatia63 Messages postés 60 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 23 décembre 2010
9 juil. 2007 à 11:58
Par contre c'est sur il faut entrer le chemin d'adobe mais quand je recopie votre "declare function...." ca marche pas!
0
Tiatia63 Messages postés 60 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 23 décembre 2010
9 juil. 2007 à 12:14
Comment ça marche shellexecute? j'ai pas tout compris?
Quand je recopie le code moi ça marche pas?
C'est une fonction qu'on appelle ensuite?
Merci
0
lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 7
9 juil. 2007 à 13:02
Oui, il faut faire la déclaration dans un module comme ceci :
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Et dans le code tu appelles ensuite ta fonction avec les différentes chaînes initialisées :

Dim nuance As String, Fichier As String
Chemin="C:\monpath"
nuance = "tondoc.pdf"
Fichier = Chemin & nuance

ShellExecute Me.hWnd, "open", Fichier, vbNullString, Chemin, 1
0
Tiatia63 Messages postés 60 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 23 décembre 2010
9 juil. 2007 à 13:49
Donc dans module 1 j'ai mis
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
dans mon code j'ai mis:
Dim nuance As String, Fichier As String
Chemin = "D:\...\Fiches Matières"
nuance = "100Cr6.pdf"
Fichier = Chemin & nuance


ShellExecute Me.hWnd, "open", Fichier, vbNullString, Chemin, 1

Et là il me dit "erreur de compilation: membre de méthode ou de données introuvable"

Pourquoi?
0
Tiatia63 Messages postés 60 Date d'inscription mardi 12 juin 2007 Statut Membre Dernière intervention 23 décembre 2010
10 juil. 2007 à 09:37
Alors j'ai fait ça et ça marche! Merci beaucoup de votre aide.
A+
0
Rejoignez-nous