Ouvir un fichier PDF

Résolu
Bonjour à tous

j'essaie d'ouvrir un fichier pdf avec un code récupéré sur ce site, mais la fonction shellExecute ne marche pas. J'ai cru comprendre qu'il fallait la déclarer dans un module, mais comment.
Merci pour votre aide

13 réponses

  1. Un grand merci pour toute cette aide
    0
    1. Re,

      Choix sous repertoires:

      Sub test1()
          Dim Chemin, Fichier, Absolu, hwndSim As String
      
          Absolu = "C:\Users\Christian\Documents\Documents ScanSoft\"
          Fichier = [Forms]![Sav recherche]![sfmRecherche].[Form]![N°Facture]
          'On ne continue que si un fichier a été sélectionné.
          If Fichier <> "" Then
              'choix sous-sous repertoire
              Set oShell = CreateObject("Shell.Application")
              Set oFolder = oShell.BrowseForFolder(&H0&, "Choisir un répertoire", &H1&, Absolu)
              If oFolder Is Nothing Then
                  MsgBox "Abandon opérateur", vbCritical
              Else
                  'Association des chemins absolu et relatif pour obtenir le chemin complet vers le fichier.
                  Set oFolderItem = oFolder.Self
                  Chemin = oFolderItem.Path & "\" & Fichier & ".pdf"
                  'Execution du fichier situé à l'emplacement "Chemin" avec son programme par défaut.
                  hwndSim = ShellExecuteForExplore(0&, vbNullString, Chemin, 0, 0, 1)
              End If
          Else
              MsgBox "Aucun fichier sélectionné"
          End If
      End Sub


      A+
      0
      1. Les documents que je veux ouvrir, sont des factures qui sont rangées dans différents sous répertoires du répertoire "Documents ScanSoft"

        Dim Chemin, Fichier, Absolu, hwndSim As String

        Absolu = "C:\Users\Christian\Documents\Documents ScanSoft\1 Christian\2013\05\"

        Fichier = [Forms]![Sav recherche]![sfmRecherche].[Form]![N°Facture]

        'On ne continue que si un fichier a été sélectionné.

        If Fichier <> "" Then

        'Association des chemins absolu et relatif pour obtenir le chemin complet vers le fichier.
        Chemin = Absolu & Fichier & ".pdf"

        'Execution du fichier situé à l'emplacement "Chemin" avec son programme par défaut.

        hwndSim = ShellExecuteForExplore(0&, vbNullString, Chemin, 0, 0, 1)

        Else

        MsgBox "Aucun fichier sélectionné"

        End If
        0
        1. Re,

          quel est le but de la recherche ??
          0
          1. Un grand merci pour cette aide si précieuse. Maintenant le code marche parfaitement. Pourtant, une dernière petite question, est-il possible de faire la recherche dans tous les sous répertoires de "Documents ScanSoft"
            0
            1. Bonjour,

              Faut pas melanger!!!

              Private Sub C194_Click()
              
                  Dim Chemin, Fichier, Absolu As String
              
                  Absolu = "C:\Users\Christian\Documents\Documents ScanSoft\1 Christian\2013\05\"
              
                  Fichier = "10513001"
                  
                  'On ne continue que si un fichier a été sélectionné.
                  If Fichier <> "" Then
              
                      'Association des chemins absolu et relatif pour obtenir le chemin complet vers le fichier.
                      Chemin = Absolu & Fichier & ".pdf"
              
                      'Execution du fichier situé à l'emplacement "Chemin" avec son programme par défaut.
                      
                      'Declare Function ShellExecuteForExplore Lib "shell32.dll" Alias "ShellExecuteA" _
                      (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, lpParameters As Any, _
                      lpDirectory As Any, ByVal nShowCmd As Long) As Long
                      ' va avec:
                      'hwndSim = ShellExecuteForExplore(0&, vbNullString, Chemin, 0, 0, 1)
                      '-------------------------------------------------------------------
                      '-------------------------------------------------------------------
                      '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
                      ' va avec:
                      hwndSim = ShellExecute(0&, "open", Chemin, "", Chemin, 1)
                  Else
                      MsgBox "Aucun fichier sélectionné"
                  End If
              
              
              End Sub


              A+
              0
              1. Voici mon code mais lorsque je clique sur le bouton rien ne ce pas

                Private Sub C194_Click()

                Dim Chemin, Fichier, Absolu As String

                Absolu = "C:\Users\Christian\Documents\Documents ScanSoft\1 Christian\2013\05"

                Fichier = "10513001"
                'On ne continue que si un fichier a été sélectionné.
                If Fichier <> "" Then

                'Association des chemins absolu et relatif pour obtenir le chemin complet vers le fichier.
                Chemin = Absolu & Fichier & ".pdf"

                'Execution du fichier situé à l'emplacement "Chemin" avec son programme par défaut.
                ShellExecute Me.hWnd, vbNullString, Chemin, "", vbNullString, 1

                Else
                MsgBox "Aucun fichier sélectionné"
                End If

                End Sub
                0
                1. Re,

                  Dans le code que vous avez recupere, il y a une declaration d'API shellexecute et surement un exemple d'ouverture de fichier.
                  API:
                  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

                  ligne de code pour ouvrir le fichier, dans le code formulaire:
                  ex:
                  Private Sub Commande7_Click
                  hwndSim = ShellExecute(0&, "open", Application.Currentproject.Path & "\nom du fichier", "", Application.Currentproject.Path, 1)
                  end sub
                  0
                  1. Merci pour cette information, mais qu elle code je doit entré
                    0
                    1. Re,

                      Ouvrir la fenetre VBA de votre fichier access, placez le curseur souris dans la fenetre projet (en haut a gauche), click droit souris, insertion, module et mettez votre declaration d'API shellexecute
                      0
                      1. Bonjour,

                        Excel, access, ou ...... ?????
                        0

                        Discussions similaires

                        question pix mot caché

                        7 réponses