Ouvrir un fichier depuis VBA

vero88360 Messages postés 4 Statut Membre -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je souhaiterais savoir comment je pourrais faire pour ouvrir un fichier pdf via VBA. Le souci c'est que je ne trouve pas de tutoriel pour m'expliquer de A à Z le cheminement. Je ne suis vraiment pas douée sur VBA, mais j'aurais vraiment besoin de ce genre de chose, qui m'aiderait beaucoup dans mon travail.

Merci de m'aiguiller où de me donner des sites pour m'aider dans ma recherche.

Cordialement

Véronique

4 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,
    C'est pour EXCEL ou ACCESS?
    0
  2. vero88360 Messages postés 4 Statut Membre
     
    C'est pour EXCEL.

    Merci
    0
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Bonjour,
      Le fichier PDF sera toujours le meme? Le code VBA sera lance comment? Est-ce qu'un lien hypertexte ne suffirait pas?
      0
  3. vero88360 Messages postés 4 Statut Membre
     
    Le fichier ne sera pas toujours le même.
    Ce que je souhaiterais c'est quand je clique sur une case où j'aurai noté dedans "pdf pour moi" j'arrive automatiquement sur le pdf en question et je n'aurais plus qu'a l'imprimer.

    Le lien hypertexte ne suffit pas car dans la case c'est le lien qui est noté et je souhaiterais que se soit la description du fichier pdf écrit par mes soins.

    Merci
    0
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      RE,
      Les .PDF seront dans le meme repertoire. Ce que vous appelez :
      "la description du fichier pdf écrit par mes soins", c'est le nom du fichier ex:toto.pdf!
      0
    2. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      RE
      Je vous donne un exemple de code

      Ouvrez le volet Visual Basic

      Dans un module copiez le code suivant:

      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
      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

      Double cliquez sur la feuille ou vous allez saisir le fichier et copiez le code suivant et adaptez le

      Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      Dim Nom_Fichier
      Dim Chemin_Fichier
      Dim hwndSim

      'le texte de la ligne de la cellule sélectionnée s'affiche en rouge
      If Flag_Click Then
      Flag_Click = False
      Exit Sub
      End If
      'Nom cellule a changer, ici A4
      If Not Application.Intersect(Target, Range("A4")) Is Nothing Then 'la macro est valable pour la plage A4

      If Target.Count > 1 Then Exit Sub 'si plus d'une cellule sélectionnée, la macro s'arrete

      Chemin_Fichier = "D:\Docs\Test\shell_\"
      Nom_Fichier = Cells(Target.Row, Target.Column)

      'Ligne de Code ci-dessous recuperee sur le site Code-source ou developpez.com !!!
      'Permet de lancer un fichier sans donner le chemin du .EXE
      hwndSim = ShellExecuteForExplore(0&, vbNullString, Chemin_Fichier & Nom_Fichier, 0, 0, 1)

      End If
      End Sub

      Essayez et rendez-compte

      Bonne suite
      0
    3. vero88360 Messages postés 4 Statut Membre
       
      merci pour votre réponse j'essayerai rapidement pour vous dire.
      0
    4. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      RE

      'le texte de la ligne de la cellule sélectionnée s'affiche en rouge
      If Flag_Click Then
      Flag_Click = False
      Exit Sub
      End If

      Ces lignes sont a enlever,elles ne servent pas dans ce qui vous interesse.

      Bonne suite
      0
    5. vero88360
       
      Bonjour,

      Je viens d'essayé (car je n'ai pas toujours le temps je dois le faire quand j'ai un peu de temps au boulot) j'ai rentré :
      Dans module 1 :

      Sub test1()
      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
      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

      End Sub

      et ensuite dans la feuil1 :

      Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      Dim Nom_Fichier
      Dim Chemin_Fichier
      Dim hwndSim

      'Nom cellule a changer, ici A4
      If Not Application.Intersect(Target, Range("A4")) Is Nothing Then 'la macro est valable pour la plage A4

      If Target.Count > 1 Then Exit Sub 'si plus d'une cellule sélectionnée, la macro s'arrete

      Chemin_Fichier = "\\serveur\Travail\BE\DOC TECHNIQUE\VITRAGE\Swisspacer.pdf"
      Nom_Fichier = Cells(Target.Row, Target.Column)

      'Ligne de Code ci-dessous recuperee sur le site Code-source ou developpez.com !!!
      'Permet de lancer un fichier sans donner le chemin du .EXE
      hwndSim = ShellExecuteForExplore(0&, vbNullString, Chemin_Fichier & Nom_Fichier, 0, 0, 1)

      End If
      End Sub

      Quand je démarre la macro j'ai une erreur qui me dit :

      Erreur de compilation: seul des commentaires peuvent apparaitre après End Sub,End Function ou End Property


      Pourriez-vous m'aider ? c'est surement pas bien compliquer sauf que je suis très mauvaise donc ... :(

      Merci
      0
  4. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour et bonnes fetes a vous,
    Un exemple que vous pourrez recuperer par le lien ci-dessous. Ce sera plus simple

    https://www.cjoint.com/?ALCpPfrfZsW

    Bonne suite
    0