Affichier un fichier pdf via une listview

osiris150

XLDnaute Occasionnel
Bonjour,

Voilà, je souhaiterais améliorer les fonctionnalités de ma listview. Mais je ne sais pas si cela est possible ou trop compliqué. C'est pour cela que je m'en remets à vous.
En fait j'ai une listview qui utilise une base de données se trouvant dans un autre fichier. Jusque là tout est normal. Dans la listview j'ai une colonne qui s'appelle "N° de note".
Je souhaiterais savoir s'il est possible en cliquant dans cette colonne sur un numéro, par exemple prenons
le N°80933975 que cela ouvre le fichier correspondant à ce numéro et qui serait dans le même répertoire mais qui par contre serait un fichier PDF.

Voilà en fait cela revient à faire une consultation d'un fichier pdf via la listview. Je n'ai aucune idée de la complexité de la chose.
En espérant que quelqu'un saura me guider.
Je vous remercie par avance.
Les fichiers nécessaires sont en pièce jointe.
Cordialement
Nicolas
 
C

Compte Supprimé 979

Guest
Re : Affichier un fichier pdf via une listview

Bonsoir Osiris150

Dans ton USF, avec un clique sur un bouton "Visualiser", par exemple
tu ajoutes le code
Code:
Private Sub CbtnVisualiser_Click()
  L = Me.ListView1.SelectedItem.Index
  Call Visualiser(Me.ListView1.ListItems(L).ListSubItems(1).Text)
End Sub
Tu ajoutes ensuite dans un module le code suivant,
Code:
' En entête de module
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


' Ou tu veux
Sub Visualiser(sFicToOpen)
  Dim sPath As String, sPathFic As String
  ' Définir le répertoire source
  sPath = "D:\Users\NonoZ\Documents\Mes Docs EXCEL\_Excel-Downloads\Osiris150\test\"
  ' Ajouter l'extension du fichier au nom
  sFicToOpen = sFicToOpen & ".pdf"
  ' Concaténer l'ensemble entre guillemets
  sPathFic = Chr(34) & sPath & sFicToOpen & Chr(34)
  ' Lancer l'ouverture du fichier avec l'application associée
  ShellExecute 0, "open", sPathFic, "", "", 5
End Sub

Voili, voilà ;)
A+
 

osiris150

XLDnaute Occasionnel
Re : Affichier un fichier pdf via une listview

Bonsoir Bruno et merci de t'être intéressé à ma requête.
J'ai bien crée un bouton visualiser et intégrer ton code comme tu me l'as dit mais rien ne se passe quand je me place sur la première ligne de ma listview et que je clique sur le bouton visualiser. Normalement ça devrait afficher le fichier pdf correspondant au N° choisi dans la ligne de la colonne "N° de note". En l’occurrence dans l'exemple et avec le fichier joint c'est la première ligne de la listview. Mais hélas rien ne se passe. Je remets les fichiers avec ton code intégré pour éventuellement que tu puisses te rendre compte par toi même.

En tous cas je te remercie encore pour le temps que tu veux bien prendre pour m'aider.
Bonne soirée
Nicolas
 
C

Compte Supprimé 979

Guest
Re : Affichier un fichier pdf via une listview

Re,

Rien ne se passe si le chemin d'accès + nom de fichier ne sont pas correctes

Tu peux essayer avec
Code:
sPath = ThisWorkbook.Path

Sinon le code pou message d'erreur
Code:
Sub Visualiser(sFicToOpen)
  Dim sPath As String, sPathFic As String, Rep As Long, TxtRep As String
  ' Définir le répertoire source
  'sPath = "C:\Users\Italo4ever\Desktop\test\"
  sPath = ThisWorkbook.Path & "\"
  ' Ajouter l'extension du fichier au nom
  sFicToOpen = sFicToOpen & ".pdf"
  ' Concaténer l'ensemble entre guillemets
  sPathFic = Chr(34) & sPath & sFicToOpen & Chr(34)
  ' Lancer l'ouverture du fichier avec l'application associée
  Rep = ShellExecute(0, "open", sPathFic, "", "", 5)
  TxtRep = ""
  Select Case Rep
    Case 0
    TxtRep = "0 Le système manque de mémoire ou de ressources, l'exécutable est corrompu ou.réallocations non valides."
    Case 2
    TxtRep = "2 Fichier non trouvé."
    Case 3
    TxtRep = "3 Chemin non trouvé."
    Case 5
    TxtRep = "5 Une tentative a été faite pour se lier dynamiquement à une tache, ou il y a eu une erreur de partage ou de protection réseau."
    Case 6
    TxtRep = "6 La librairie requiert des segments de données séparés pour chaque tâche."
    Case 8
    TxtRep = "8 Il n 'y a pas assez de mémoire disponible pour lancer l'application."
    Case 10
    TxtRep = "10 Version de Windows incorrecte."
    Case 11
    TxtRep = "11 Le fichier executable n'est pas correct, il se peut que ce ne soit pas une application Windows, ou qu'il y ait une erreur dans le fichier .EXE"
    Case 12
    TxtRep = "12 L 'application a été conçue pour un autre système d'exploitation."
    Case 13
    TxtRep = "13 L 'application a été conçue pour MS-DOS 4.0."
    Case 14
    TxtRep = "14 Le type de fichier executable est inconnu."
    Case 15
    TxtRep = "15 Tentative de chargement d'une application en mode réel."
    Case 16
    TxtRep = "16 Tentative de charger une seconde instance d'un fichier exécutable contenant plusieurs segments de données qui ne sont pas marqués en lecture seule."
    Case 19
    TxtRep = "19 Tentative de charger un fichier exécutable compressé, le fichier doit être décompressé avant d'être chargé."
    Case 20
    TxtRep = "20 Fichier de librairie liée dynamiquement (DLL) incorrect, une des DLLs requise pour exécuter cette application est corrompue."
    Case 21
    TxtRep = "21 L 'application requiert les extensions Microsoft Windows 32-bit."
    Case 31
    TxtRep = "31 Il n 'y a pas d'association le le type de fichier spécifié, ou il n'y a pas d'association pour l'action choisie pour le type de fichier choisi."
  End Select
  If Len(TxtRep) > 0 Then
    MsgBox "Erreur : " & TxtRep, vbInformation, "OUPS ..."
  End If
End Sub

A+
 

Discussions similaires

Réponses
8
Affichages
383

Statistiques des forums

Discussions
312 113
Messages
2 085 430
Membres
102 889
dernier inscrit
monsef JABBOUR