Insertion fichiers pdf dans EXCEL par macro

Jeremie31 -  
 user -
Bonjour,
J’aimerais pouvoir sous EXCEL effectuer par macro l’attachement d’un fichier PDF sur chaque ligne d’un classeur, sachant que le nom du fichier est défini par la valeur d’une cellule.
Exemple : si en cellule A1, j’ai la valeur « BOB », j’aimerais pouvoir insérer sous la forme d’une icône le fichier C://Mes Documents/BOB.pdf et le redimensionner pour qu’il tienne dans la cellule B1.
De même en A2, si la valeur est « SAM », que le fichier SAM.pdf soit attaché en cellule B2…
Et ainsi de suite pour 120 lignes.

Est ce possible ?
Merci de m’aider !!!
Configuration: Windows XP
Internet Explorer 7.0

3 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    j’aimerais pouvoir insérer sous la forme d’une icône

    Quelle icône tu veux mettre car un fichier pdf n'en contient pas ?

    Ne serais-ce pas plutôt un lien hypertexte pour lancer son ouverture ?

    le redimensionner pour qu’il tienne dans la cellule B1

    Tu veux que le nom du fichier soit visible en entier ?

    Si c'est pour aller systématiquement sur le même répertoire, à quoi bon ?

    Si tu as "BOB" dans une cellule, tu peux très bien ouvrir C://Mes Documents/BOB.pdf, sans changer quoi que ce soit mais en utilisant une petite macro ou modifier ta cellule pour introduire un lien hypertexte manuellement ou par macro.

    A toi de nous dire.
    0
  2. Jeremie31
     
    En fait je voudrais élaborer une macro qui fasse automatiquement ce que l'on peit faire manuellement en faisant insertion, objet, insérer sous forme d'icone (et lier au fichier) un fichier qui dans ce cas est un pdf.
    Il se trouve que le nom des fichiers à joindre est le même que celui se trouvant dans les cellules de la première colonne mais créer un lien hypertexte ne marcherait pas dans mon cas car le classeur Excel est destiné à voyager vers plusieurs ordinateurs qui n'auront pas enregistré les fichiers pdf relatifs au lien.

    Hum j'espère que c'est assez clair!!

    merci de votre aide!!!
    0
  3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    Effectivement cette fois-ci c'est plus clair pour moi et je te mets la macro que j'ai codée, à insérer dans un module.
    J'utilise Foxit pour les pdf et à toi de remplacer le chemin par ton lecteur de pdf que tu utilises
    Sub lier_pdf()
    Dim lig As Long
    Dim ico As String
    Dim nom As String
    Dim rep As String
    
    ' modifier avec le bon chemin
    ico = "C:\Program Files\Foxit Software\Foxit Reader\Foxit Reader.exe"
    rep = "C:\Mes documents\"
    
    For lig = 1 To Cells(1, 1).SpecialCells(xlCellTypeLastCell).Row
            nom = Cells(lig, 1).Value
            ActiveSheet.OLEObjects.Add( _
            Filename:=rep & "\" & nom & ".pdf", _
            Link:=True, _
            DisplayAsIcon:=True, _
            IconFileName:=ico, _
            IconIndex:=0, _
            IconLabel:=nom).Select
            Selection.Left = Cells(lig, 2).Left
            Selection.Top = Cells(lig, 2).Top
            Selection.Height = Cells(lig, 2).Height
            Selection.Width = Cells(lig, 2).Width
    Next lig
    End Sub

    le classeur Excel est destiné à voyager vers plusieurs ordinateurs qui n'auront pas enregistré les fichiers pdf relatifs au lien.

    Là je ne suis pas sûr du tout que cela fonctionne car ce qui est enregistré, c'est bien un lien et non le pdf lui-même.
    Donc sur d'autres micros je doute fort que l'ouverture se fasse sauf si tu intègres les fichiers concernés.
    0
    1. Jeremie31
       
      tout d'abord merci pour la première macro!!

      Donc sur d'autres micros je doute fort que l'ouverture se fasse sauf si tu intègres les fichiers concernés

      Comment est ce que je peux faire en sorte que l'intégration se fasse ?

      encore merci
      0
    2. user
       
      salut
      je pense qu'il faut copier tes fichiers pdf sur tous les micros !!
      0