Ouvrir un pdf à partir d'une feuille Excel

Bonjour.
Après maintes recherches, je ne trouve toujours pas comment faire ce que je souhaite (ou alors je ne comprends pas).

Dans une colonne, j'ai plein de nom de fichier pdf que je saisi manuellement (A, B, C, D...) tous situés dans le même dossier sur le pc.
1 - J'aimerais que quand je clique sur la cellule qui contient "A" (fichier A), excel ouvre automatiquement le fichier concerné.
2 - Si je rajoute le nom d'un fichier dans la colonne, j'aimerais que excel crée automatiquement le lien vers le fichier existant ou non dans le dossier, pour eviter que je crée à chaque fois manuellement le lien.

Comment faire cela en vba svp ?

Bonjour,

Ci-joint une proposition. Le VBA se trouve dans le code de la feuille ainsi que le module1.

' code feuille
Private Sub Worksheet_Change(ByVal Target As Range)
  If Intersect(Target, Range("A:A").EntireColumn) Is Nothing Then Exit Sub
  Application.EnableEvents = False
  AddLink Target
  Application.EnableEvents = True
End Sub
' code module
Option Explicit

Sub AddLink(refCell As Range)
'
  Dim addr As String
  addr = Range("DossierParent").Value2 & "\" & refCell.Value2

  If Not dirExists(addr) Then Exit Sub

    refCell.Worksheet.Hyperlinks.Add Anchor:=refCell, _
        Address:= addr, _
        TextToDisplay:= refCell.Value2
End Sub

Public Function dirExists(addr As String) As Boolean
    Dim oFSO As Object
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    dirExists = oFSO.FileExists(addr)
End Function
10book1.xlsm (18.24 Ko)

Bonsoir saboh, merci pour ton aide et ta réactivité !

C'est génial, le code marche à 99% comme je le souhaite.

Le 1% restant, j'aimerais ne pas à avoir à éditer les cellules une par une pour que les liens se créent.

Comment faire pour que tous les liens se fasse en clic ou automatiquement à chaque ouverture de la feuille ?

Bonjour,

Vous pouvez dans ce cas écrire une boucle qui "lit" votre colonne et appelle le Sub AddLink. C'est lui qui vous ajoute les hyperliens.

Par exemple comme ceci :

Sub BatchAddLink()
  ' Récupération des cellules pleines dans la colonne A de la feuille active
  Dim myCells As Range
  With ActiveSheet
    Set myCells = Range(.Range("A2"), .Cells(.Cells.Count, 1).End(xlUp))
  End With

  ' pour chaque cellule, ajout du lien
  Dim c As Variant
  For Each c in myCells
    AddLink c
  Next c
End Sub

Puis vous mettez un bouton ou vous appelez ce nouveau Sub dans l'event Workbooks.Open method (Excel) | Microsoft Learn.

Bonjour saboh, merci pour ta réponse.

Cependant, ce code ne fonctionne pas

Sub BatchAddLink()
  ' Récupération des cellules pleines dans la colonne A de la feuille active
  Dim myCells As Range
  With ActiveSheet
    Set myCells = Range(.Range("A2"), .Cells(.Cells.Count, 1).End(xlUp))
  End With

  ' pour chaque cellule, ajout du lien
  Dim c As Variant
  For Each c In myCells
    Call AddLink(c)
  Next c
End Sub

J'obtiens l'erreur "type d'argument Byref incompatible.

J'ai donc remplacer Dim c As Variant par Dim c As Range, mais nouvelle erreur : "Erreur d'execution 6 Dépassement de capacité" pointé sur la ligne de code Set myCells = Range(.Range("A2"), .Cells(.Cells.Count, 1).End(xlUp))

Et là je sèche

Bonjour,

Excusez-moi, c'est une erreur bête de ma part. C'est Rows.Count qu'il faut aller chercher pour la dernière ligne de la feuille, et non .Cells.Count qui renvoie le nombre de cellules dans la feuille. (d'où l'overflow : il y a plus de cellules que de lignes dans une feuille)

Pour c vous avez raison, il faut l'indiquer en Range. Ou alternativement faire comme indiqué dans le commentaire ci-dessous

Sub BatchAddLink()
  ' R�cup�ration des cellules pleines dans la colonne A de la feuille active
  Dim myCells As Range
  With ActiveSheet
    Set myCells = Range(.Range("A2"), .Cells(.Rows.Count, 1).End(xlUp))
  End With

  ' pour chaque cellule, ajout du lien
  Dim c As Range     ' ou Dim c As Variant
  For Each c In myCells
    AddLink c        ' ou AddLink c.Cells
  Next c
End Sub

Super ! Merci merci beaucoup ! Ca marche nickel chrome !

Rechercher des sujets similaires à "ouvrir pdf partir feuille"