Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Ouvrir un PDF avec VBA

4 réponses
Avatar
Fred64
Bonjour tout le monde,
Je souhaiterai ouvrir un fichier PDF (qui est toujours dans le même dossier)
avec VBA. Il parait qu'on peut utiliser ça:

Private Sub CommandButton2_Click()
Dim rc
rc = Shell(Chr(34) & "c:\\Program Files\\Adobe\\Acrobat
6.0\\Reader\\AcroRd32.exe" & Chr(34) & "c:\\dossier_pdf\\toto.pdf",
vbNormalFocus)
End Sub

Mais le chemin d'Acrobat n'est pas toujours le même!
Comment faire ?

Merci d'avance

4 réponses

Avatar
Daniel.j
Bonsoir
Essai avec cela
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpszOp As String, _
ByVal lpszFile As String, ByVal lpszParams As String, _
ByVal lpszDir As String, ByVal fsShowCmd As Long) _
As Long

Const SW_SHOWNORMAL = 1

Sub Test()
'a modifier
StartDoc ("c:dossier_pdftoto.pdf")
End Sub

Public Sub StartDoc(ByVal szDoc As String)
Dim lRet As Long
lRet = ShellExecute(0, "Open", szDoc, "", "C:", SW_SHOWNORMAL)
End Sub
Daniel

--
===================== FAQ MPFE
http://dj.joss.free.fr/faq.htm
=====================

"Fred64" a écrit dans le message de news:
%233KA$
Bonjour tout le monde,
Je souhaiterai ouvrir un fichier PDF (qui est toujours dans le même
dossier) avec VBA. Il parait qu'on peut utiliser ça:

Private Sub CommandButton2_Click()
Dim rc
rc = Shell(Chr(34) & "c:Program FilesAdobeAcrobat
6.0ReaderAcroRd32.exe" & Chr(34) & "c:dossier_pdftoto.pdf",
vbNormalFocus)
End Sub

Mais le chemin d'Acrobat n'est pas toujours le même!
Comment faire ?

Merci d'avance



Avatar
Fred64
Merci Daniel,
J'ai essayé dans une feuille vierge et ça marche à merceille.

Je l'ai donc intégré à mon code et là j'ai l'erreur:"Constantes, chaînes de
longueur fixe, tableaux, types définis par l'utilisateur et instructions
Declare non autorisés en tant que membres Public d'un module objet"
Voici mon code:
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpszOp As String, _
ByVal lpszFile As String, ByVal lpszParams As String, _
ByVal lpszDir As String, ByVal fsShowCmd As Long) _
As Long
Const SW_SHOWNORMAL = 1

Private Declare Function GetWindowLongA Lib "User32" _
(ByVal hwnd As Long, ByVal nIndex As Long) As Long

Private Declare Function SetWindowLongA Lib "User32" _
(ByVal hwnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long

Private Declare Function FindWindowA Lib "User32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
'---------------------------------------------------------------
Private Sub CB_echanger_cours_Click()
Select Case MsgBox("Nous constituons un réseau ." _
& vbCrLf & "Si vous souhaitez nous rejoindre, un tutoriel
pour installer le logiciel est à disposition. Souhaitez vous le lire ?" _
, vbYesNo Or vbInformation Or vbDefaultButton1, "Comment
échanger nos cours")

Case vbYes
'POUR OUVRIR PDF

StartDoc ("C:Program FilesFiches Méthode BoisTutoriel TribalWeb.pdf")

Case vbNo
End Select
End Sub
'----------------------------------------------------
Public Sub StartDoc(ByVal szDoc As String)
Dim lRet As Long
lRet = ShellExecute(0, "Open", szDoc, "", "C:", SW_SHOWNORMAL)
End Sub


Avez vous une idée ??
Merci d'avance

"Daniel.j" a écrit dans le message de news:
%
Bonsoir
Essai avec cela
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpszOp As String, _
ByVal lpszFile As String, ByVal lpszParams As String, _
ByVal lpszDir As String, ByVal fsShowCmd As Long) _
As Long

Const SW_SHOWNORMAL = 1

Sub Test()
'a modifier
StartDoc ("c:dossier_pdftoto.pdf")
End Sub

Public Sub StartDoc(ByVal szDoc As String)
Dim lRet As Long
lRet = ShellExecute(0, "Open", szDoc, "", "C:", SW_SHOWNORMAL)
End Sub
Daniel

--
===================== > FAQ MPFE
http://dj.joss.free.fr/faq.htm
===================== >

"Fred64" a écrit dans le message de news:
%233KA$
Bonjour tout le monde,
Je souhaiterai ouvrir un fichier PDF (qui est toujours dans le même
dossier) avec VBA. Il parait qu'on peut utiliser ça:

Private Sub CommandButton2_Click()
Dim rc
rc = Shell(Chr(34) & "c:Program FilesAdobeAcrobat
6.0ReaderAcroRd32.exe" & Chr(34) & "c:dossier_pdftoto.pdf",
vbNormalFocus)
End Sub

Mais le chemin d'Acrobat n'est pas toujours le même!
Comment faire ?

Merci d'avance







Avatar
michdenis
Bonjour Fred64,

Met le mot "PRIVATE" au début de déclaration de cette ligne
Declare Function ShellExecute Lib
et on n'en parle plus ! ;-)


Salutations!



"Fred64" a écrit dans le message de news:
Merci Daniel,
J'ai essayé dans une feuille vierge et ça marche à merceille.

Je l'ai donc intégré à mon code et là j'ai l'erreur:"Constantes, chaînes de
longueur fixe, tableaux, types définis par l'utilisateur et instructions
Declare non autorisés en tant que membres Public d'un module objet"
Voici mon code:
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpszOp As String, _
ByVal lpszFile As String, ByVal lpszParams As String, _
ByVal lpszDir As String, ByVal fsShowCmd As Long) _
As Long
Const SW_SHOWNORMAL = 1

Private Declare Function GetWindowLongA Lib "User32" _
(ByVal hwnd As Long, ByVal nIndex As Long) As Long

Private Declare Function SetWindowLongA Lib "User32" _
(ByVal hwnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long

Private Declare Function FindWindowA Lib "User32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
'---------------------------------------------------------------
Private Sub CB_echanger_cours_Click()
Select Case MsgBox("Nous constituons un réseau ." _
& vbCrLf & "Si vous souhaitez nous rejoindre, un tutoriel
pour installer le logiciel est à disposition. Souhaitez vous le lire ?" _
, vbYesNo Or vbInformation Or vbDefaultButton1, "Comment
échanger nos cours")

Case vbYes
'POUR OUVRIR PDF

StartDoc ("C:Program FilesFiches Méthode BoisTutoriel TribalWeb.pdf")

Case vbNo
End Select
End Sub
'----------------------------------------------------
Public Sub StartDoc(ByVal szDoc As String)
Dim lRet As Long
lRet = ShellExecute(0, "Open", szDoc, "", "C:", SW_SHOWNORMAL)
End Sub


Avez vous une idée ??
Merci d'avance

"Daniel.j" a écrit dans le message de news:
%
Bonsoir
Essai avec cela
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpszOp As String, _
ByVal lpszFile As String, ByVal lpszParams As String, _
ByVal lpszDir As String, ByVal fsShowCmd As Long) _
As Long

Const SW_SHOWNORMAL = 1

Sub Test()
'a modifier
StartDoc ("c:dossier_pdftoto.pdf")
End Sub

Public Sub StartDoc(ByVal szDoc As String)
Dim lRet As Long
lRet = ShellExecute(0, "Open", szDoc, "", "C:", SW_SHOWNORMAL)
End Sub
Daniel

--
===================== > FAQ MPFE
http://dj.joss.free.fr/faq.htm
===================== >

"Fred64" a écrit dans le message de news:
%233KA$
Bonjour tout le monde,
Je souhaiterai ouvrir un fichier PDF (qui est toujours dans le même
dossier) avec VBA. Il parait qu'on peut utiliser ça:

Private Sub CommandButton2_Click()
Dim rc
rc = Shell(Chr(34) & "c:Program FilesAdobeAcrobat
6.0ReaderAcroRd32.exe" & Chr(34) & "c:dossier_pdftoto.pdf",
vbNormalFocus)
End Sub

Mais le chemin d'Acrobat n'est pas toujours le même!
Comment faire ?

Merci d'avance







Avatar
Fred64
Merci encore michdenis, tu me débloques la situation ;-)


"michdenis" a écrit dans le message de news:
OkqI%
Bonjour Fred64,

Met le mot "PRIVATE" au début de déclaration de cette ligne
Declare Function ShellExecute Lib
et on n'en parle plus ! ;-)


Salutations!



"Fred64" a écrit dans le message de news:

Merci Daniel,
J'ai essayé dans une feuille vierge et ça marche à merceille.

Je l'ai donc intégré à mon code et là j'ai l'erreur:"Constantes, chaînes
de
longueur fixe, tableaux, types définis par l'utilisateur et instructions
Declare non autorisés en tant que membres Public d'un module objet"
Voici mon code:
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpszOp As String, _
ByVal lpszFile As String, ByVal lpszParams As String, _
ByVal lpszDir As String, ByVal fsShowCmd As Long) _
As Long
Const SW_SHOWNORMAL = 1

Private Declare Function GetWindowLongA Lib "User32" _
(ByVal hwnd As Long, ByVal nIndex As Long) As Long

Private Declare Function SetWindowLongA Lib "User32" _
(ByVal hwnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long

Private Declare Function FindWindowA Lib "User32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
'---------------------------------------------------------------
Private Sub CB_echanger_cours_Click()
Select Case MsgBox("Nous constituons un réseau ." _
& vbCrLf & "Si vous souhaitez nous rejoindre, un
tutoriel
pour installer le logiciel est à disposition. Souhaitez vous le lire ?" _
, vbYesNo Or vbInformation Or vbDefaultButton1, "Comment
échanger nos cours")

Case vbYes
'POUR OUVRIR PDF

StartDoc ("C:Program FilesFiches Méthode BoisTutoriel TribalWeb.pdf")

Case vbNo
End Select
End Sub
'----------------------------------------------------
Public Sub StartDoc(ByVal szDoc As String)
Dim lRet As Long
lRet = ShellExecute(0, "Open", szDoc, "", "C:", SW_SHOWNORMAL)
End Sub


Avez vous une idée ??
Merci d'avance

"Daniel.j" a écrit dans le message de news:
%
Bonsoir
Essai avec cela
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpszOp As String, _
ByVal lpszFile As String, ByVal lpszParams As String, _
ByVal lpszDir As String, ByVal fsShowCmd As Long) _
As Long

Const SW_SHOWNORMAL = 1

Sub Test()
'a modifier
StartDoc ("c:dossier_pdftoto.pdf")
End Sub

Public Sub StartDoc(ByVal szDoc As String)
Dim lRet As Long
lRet = ShellExecute(0, "Open", szDoc, "", "C:", SW_SHOWNORMAL)
End Sub
Daniel

--
===================== >> FAQ MPFE
http://dj.joss.free.fr/faq.htm
===================== >>

"Fred64" a écrit dans le message de news:
%233KA$
Bonjour tout le monde,
Je souhaiterai ouvrir un fichier PDF (qui est toujours dans le même
dossier) avec VBA. Il parait qu'on peut utiliser ça:

Private Sub CommandButton2_Click()
Dim rc
rc = Shell(Chr(34) & "c:Program FilesAdobeAcrobat
6.0ReaderAcroRd32.exe" & Chr(34) & "c:dossier_pdftoto.pdf",
vbNormalFocus)
End Sub

Mais le chemin d'Acrobat n'est pas toujours le même!
Comment faire ?

Merci d'avance