IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Ouvrir un doc PDF [Toutes versions]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2007
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Mars 2007
    Messages : 389
    Par défaut Ouvrir un doc PDF
    Bonjour à toute et toutes, je souhaite ouvrir un doc PDF qui se trouve stocké dans un répertoire. J'ai un code qui me permet d'ouvrir un doc pdf en double cliquant sur une cellule, mais l'inconvénient c'est que les doc PDF doivent être dans le même répertoire que le classeur Excel. Je pense qu'il faut lui indiquer le chemin, mais je n'y arrive pas. Si quelqu'un à une solution je suis preneur. Voir le code actuel. Merci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Dim tablo$(), n&, i&, fichier$, s$, dossier$
     
    If Target.Row > 1 And Target.Column = 3 And Len(Trim(Target)) > 0 Then
      Cancel = True
      dossier = ThisWorkbook.Path
      If Right(dossier, 1) <> "\" Then dossier = dossier & "\"
      fichier = Dir(dossier & "*" & Trim(Target) & "*")
      Do While fichier <> ""
        n = n + 1: ReDim Preserve tablo(1 To n): tablo(n) = fichier: fichier = Dir
      Loop
      Select Case n
        Case 0
          MsgBox "Aucun fichier PDF ne contient " & Target
        Case 1
          ThisWorkbook.FollowHyperlink Address:=tablo(1), NewWindow:=True
        Case Else
          s = "Il existe " & n & " fichiers PDF contenant " & Target
          s = s & ". Veuillez saisir le N° du fichier ? :"
          For i = 1 To n
            s = s & vbLf & i & Space(3 - Len(CStr(i))) & " -> " & tablo(i)
          Next i
          On Error Resume Next: i = Int(InputBox(s)): On Error GoTo 0
          If i > 0 And i <= n Then
            ThisWorkbook.FollowHyperlink Address:=dossier & tablo(i), NewWindow:=True
          End If
      End Select
    End If
    End Sub

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Bonjour, une solution toute simple est de spécifier le chemin dans le code, remplacer dossier = ThisWorkbook.Path par dossier = "C:\Chemin\Vers\Votre\Dossier\PDF".
    Si le dossier change, il faudra le changer dans le code. Une solution plus flexible est d'ajouter une boîte de dialogue qui permet le choix.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
     
        Dim tablo$(), n&, i&, fichier$, s$, dossier$
        Dim fd As FileDialog
     
        If Target.Row > 1 And Target.Column = 3 And Len(Trim(Target)) > 0 Then
     
            Cancel = True
     
            ' Ouvrir une boîte de dialogue pour sélectionner le dossier
            Set fd = Application.FileDialog(msoFileDialogFolderPicker)
            fd.Title = "Sélectionnez le dossier contenant les fichiers PDF"
     
            If fd.Show = -1 Then ' Si un dossier est sélectionné
                dossier = fd.SelectedItems(1)
            Else
                MsgBox "Aucun dossier sélectionné."
                Exit Sub
            End If
     
            If Right(dossier, 1) <> "\" Then dossier = dossier & "\"
     
            fichier = Dir(dossier & "*" & Trim(Target) & "*.pdf")
     
            Do While fichier <> ""
                n = n + 1: ReDim Preserve tablo(1 To n): tablo(n) = fichier: fichier = Dir
            Loop
     
            Select Case n
                Case 0
                    MsgBox "Aucun fichier PDF ne contient " & Target
                Case 1
                    ThisWorkbook.FollowHyperlink Address:=dossier & tablo(1), NewWindow:=True
                Case Else
                    s = "Il existe " & n & " fichiers PDF contenant " & Target
                    s = s & ". Veuillez saisir le N° du fichier ? :"
                    For i = 1 To n
                        s = s & vbLf & i & Space(3 - Len(CStr(i))) & " -> " & tablo(i)
                    Next i
                    On Error Resume Next: i = Int(InputBox(s)): On Error GoTo 0
                    If i > 0 And i <= n Then
                        ThisWorkbook.FollowHyperlink Address:=dossier & tablo(i), NewWindow:=True
                    End If
            End Select
     
        End If
     
    End Sub

  3. #3
    Membre éclairé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2007
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Mars 2007
    Messages : 389
    Par défaut
    Merci Franc, mais ça ne fonctionne pas rien ne se passe quand je double clic dans la cellule.

  4. #4
    Membre Expert Avatar de Nain porte koi
    Homme Profil pro
    peu importe
    Inscrit en
    Novembre 2023
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : peu importe

    Informations forums :
    Inscription : Novembre 2023
    Messages : 1 224
    Par défaut
    Vous avez bien replacé la procédure dans la feuille où elle se trouvait avant ?!
    s'il n'y a rien dans la cellule sur laquelle vous faite un double clic, supprimez cette partie "And Len(Trim(Target)) > 0"

  5. #5
    Membre éclairé
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2007
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Mars 2007
    Messages : 389
    Par défaut
    Bonjour, oui merci à vous deux pour votre aide. En fait j'ai changer
    If "Target.Row > 1 And Target.Column = 6 And Len(Trim(Target)) > 0 Then"
    le 3 And Len par un 6 And Len. Ça ouvre bien la boite de dialogue pour choisir le doc. En revanche, je préfèrerais qu'il s'ouvre directement sans passer par la boite de dialogue. Lorsqu'il y aura des centaines de fichiers PDF ce sera contraignant d'ouvrir à chaque fois la boite pour choisir le PDF. D'ailleurs on ne voit pas les fichiers PDF dans leur dossier Excel repère le doc grâce à son numéro dans la cellule. Merci

  6. #6
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Bonjour, si tu lis bien ma première réponse, je t'ai donné 2 solutions, avec et sans boîte de dialogue.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] Ouvrir un doc PDF avec un bouton
    Par maringot dans le forum Access
    Réponses: 2
    Dernier message: 10/11/2014, 07h57
  2. je ne peux pas ouvrir doc pdf sous le browser
    Par ouldfella dans le forum Windows
    Réponses: 2
    Dernier message: 11/05/2010, 14h57
  3. [debutant]ouvrir un fichier doc, pdf, xls, ..
    Par christopheEU dans le forum ASP.NET
    Réponses: 7
    Dernier message: 14/10/2008, 17h54
  4. Réponses: 9
    Dernier message: 20/06/2005, 16h47
  5. ouvrir un .doc ou .pdf au sein d'un prog
    Par noinneh dans le forum MFC
    Réponses: 19
    Dernier message: 16/02/2005, 15h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo