Erreur à l'ouverture d'un .pdf avec l'API ShellExecute
Résolu
Hama'
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
Hama' Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Hama' Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
J'arrive au terme du développement d'un petit logiciel de gestion de cabinet médical et je viens vers vous pour une aide sur l'utilisation de l'API ShellExecute.
Le formulaire concerné dispose d'une liste déroulante alimentée par la base de données patient. La sélection du patient entraîne l'affichage de son nom et de son prénom dans 2 TextBox et active un bouton.
Au clic sur ce bouton, j'aimerais ouvrir un fichier .pdf de rapport lié au patient.
Voilà mon code VBA :
Et l'erreur générée au clic sur le bouton :
"Des constantes, chaînes de longueur fixe, tableaux, types définis par l'utilisateur et instructions Declare ne sont pas autorisés comme membres Public de modules d'objet."
Quelqu'un saurait-il m'éclairer ?
Merci d'avance,
J'arrive au terme du développement d'un petit logiciel de gestion de cabinet médical et je viens vers vous pour une aide sur l'utilisation de l'API ShellExecute.
Le formulaire concerné dispose d'une liste déroulante alimentée par la base de données patient. La sélection du patient entraîne l'affichage de son nom et de son prénom dans 2 TextBox et active un bouton.
Au clic sur ce bouton, j'aimerais ouvrir un fichier .pdf de rapport lié au patient.
Voilà mon code VBA :
Option Explicit #If Win64 Then 'La machine utilisée tourne en 64 bits Declare PtrSafe 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 #Else 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 #End If Private Sub CmdOuv_Click() Dim chemin, nom, prenom As String nom = LCase(NomTextBox.Value) 'De même pour prenom chemin = "C:\BLABLA\" & nom & "_" & prenom & ".pdf" OuvrirShellExecute (chemin) End Sub Public Function OuvrirShellExecute(strFichier) ShellExecute 0, "open", strFichier, vbNullString, vbNullString, 1 End Function
Et l'erreur générée au clic sur le bouton :
"Des constantes, chaînes de longueur fixe, tableaux, types définis par l'utilisateur et instructions Declare ne sont pas autorisés comme membres Public de modules d'objet."
Quelqu'un saurait-il m'éclairer ?
Merci d'avance,
A voir également:
- Erreur à l'ouverture d'un .pdf avec l'API ShellExecute
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Save as pdf office 2007 - Télécharger - Bureautique
- Télécharger dictionnaire larousse pdf gratuit - Télécharger - Dictionnaires & Langues
- Comment faire un fichier pdf - Guide
- Notices gratuites pdf - Guide
2 réponses
Bonjour,
a mettre dans un module, pas dans le vba du formulaire (au passage petite erreur dans l'appel de ShellExecute, voir correction ci-dessous)
Option Explicit
#If Win64 Then 'La machine utilisée tourne en 64 bits
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
#Else
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
#End If
Public Function OuvrirShellExecute(strFichier, Chemin_fichier)
ShellExecute 0, "open", strFichier, vbNullString, Chemin_fichier, 1
End Function
dans formulaire:
Private Sub CmdOuv_Click()
Dim chemin, nom, prenom As String
nom = LCase(NomTextBox.Value) 'De même pour prenom
chemin = "C:\BLABLA\" & nom & "_" & prenom & ".pdf"
rep="C:\BLABLA\"
OuvrirShellExecute (chemin,rep)
End Sub
A+
a mettre dans un module, pas dans le vba du formulaire (au passage petite erreur dans l'appel de ShellExecute, voir correction ci-dessous)
Option Explicit
#If Win64 Then 'La machine utilisée tourne en 64 bits
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
#Else
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
#End If
Public Function OuvrirShellExecute(strFichier, Chemin_fichier)
ShellExecute 0, "open", strFichier, vbNullString, Chemin_fichier, 1
End Function
dans formulaire:
Private Sub CmdOuv_Click()
Dim chemin, nom, prenom As String
nom = LCase(NomTextBox.Value) 'De même pour prenom
chemin = "C:\BLABLA\" & nom & "_" & prenom & ".pdf"
rep="C:\BLABLA\"
OuvrirShellExecute (chemin,rep)
End Sub
A+