macro pour ouvrir pdf

ronan1108

XLDnaute Nouveau
Bonjour,

j'ai sur un tableau excel des numéros de pièce de facture, montant, libellé, etc
je peux lier avec un lien hypertexte par exemple dans la cellule c2 (44102) à un pdf dont le nom du fichier pdf commence par 44102.
c'est assez long quand il y a beaucoup de liens à faire.

Est-il possible de faire une macro qui va chercher le pdf en cliquant sur la cellule et ainsi éviter de faire plein de lien hyper texte ? sachant que le pdf n'a pas le nom de la pièce (44102 par exemple) mais " 44102 aai.pdf "
"
mon fichier excel est dans un dossier et mes pdf sont également dans ce dossier.

est-ce possible ?

ou alors, créé sur le fichier excel une case où je viendrais rentrer le numéro de la pièce, je fais entrer et le pdf s'ouvre .

bonne journée
 

Pièces jointes

  • TEST GRAND LIVRE - Copie.zip
    5.8 KB · Affichages: 28

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : macro pour ouvrir pdf

Bonsoir ronan1108,

Un essai dans le fichier joint. Cliquez sur une cellule de la colonne C pour ouvrir le ou les PDF.

le code est dans le module de code de la feuille "Base":
VB:
Option Explicit
Option Compare Text

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
 

Pièces jointes

  • Ronan.zip
    326.1 KB · Affichages: 44

kiki29

XLDnaute Barbatruc
Re : macro pour ouvrir pdf

Salut, voir Manipulation des fichiers en VBA

et donc en utilisant qqch comme ceci, ou avec un Dir , plutôt qu'une usine à gags :
Code:
Option Explicit

Sub Tst()
Dim FSO As Object
Dim sCheminPdf As String, sNomFichier As String

    sCheminPdf = "....."
    sNomFichier = "....."
    Set FSO = Objecteur("Scripting.FileSystemObject")
    If FSO.fileExists(sCheminPdf & "\" & sNomFichier) Then
        '.....
    Else
        '.....
    End If
    Set FSO = Nothing
End Sub
 
Dernière édition:

Discussions similaires

Réponses
1
Affichages
192

Statistiques des forums

Discussions
312 321
Messages
2 087 261
Membres
103 498
dernier inscrit
FAHDE