Ouvrir un fichier word en cliquant sur une cellule

Bonjour à tous,

j'ai créé un bout de code pour ouvrir un fichier word spécifique en cliquant sur une cellule précise. Cela marche très bien. Je me pose une question : je voudrais généraliser, c'est à dire ouvrir par exemple 20 fichiers word différent en cliquant sur 20 cellules différentes pour chacun de ces fichiers. Est ce possible de paramétrer mon code et si oui comment ?

Dans mon exemple le fait de cliquer sur la cellule "D4" on ouvre le fichier "document1.docx". Je voudrais ouvrir le fichier "document2.docx" en cliquant par exemple sur la cellule "E5", etc ...

Sub ouvrir_fichier()

Set mon_fichier = CreateObject("Word.Application")
With mon_fichier
    .Visible = True
    .Documents.Open Filename:="C:\Users\toch\Desktop\Mes Documents\document1.docx"
    .Activate
End With
Set mon_fichier = Nothing
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("D4")) Is Nothing Then Call ouvrir_fichier
End Sub

Merci et bien cordialement

Bonjour,

Modifiez la plage de recherche dans la macro évènementielle suivante:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("D4")) Is Nothing Then Call ouvrir_fichier
End Sub

Remplacez "range("D4")" par la plage de cellules sur laquelle doit s'appliquer l'action, exemple: range("D2:E20")

Cdlt

Bonjour Arturo83,

Non, cette proposition ne répond pas à ma demande car en utilisant une plage il est évident que je pourrai ouvrir mon fichier grâce à chacune des cellules de cette plage, mais ce sera toujours le même fichier que j'ouvrirai. J'ai pensé à un "truc" comme cela, mais j'ai alors un nombre très important de lignes de code (autant que de fichiers à atteindre), je cherche donc une astuce me permettant de paramétrer les cellules et les fichiers.

Sub ouvrir_fichier(fichier)
chemin ="C:\Users\toch\Desktop\Mes Documents\"
Set mon_fichier = CreateObject("Word.Application")
With mon_fichier
    .Visible = True
    .Documents.Open Filename:=chemin  & fichier
    .Activate
End With
Set mon_fichier = Nothing
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("D4")) Is Nothing Then fichier= "fichier1.xls" : Call ouvrir_fichier
    If Not Application.Intersect(Target, Range("E5")) Is Nothing Then fichier= "fichier2.xls" : Call ouvrir_fichier
     etc ...

End Sub

Comme j'ignore totalement comment est construit votre fichier, je n'ai fait qu'une proposition en fonction de ce que vous avez présenté.

Cependant, pourquoi ne pas créer un lien hypertexte pour les cellules concernées et qui ouvrirait directement le fichier word désiré?

Mon fichier se résume à la plus simple expression qui est celle que je présente ci-dessus : une feuille Excell vide et en cliquant sur certaines cellules on ouvre le fichier Word correspondant.

Quant au lien hypertexte, je ne connais pas, pourriez vous détailler ? Il s'agit certainement d'une formule n'est ce pas, et en ce qui concerne les formules je suis loin d'être au top.

Merci

Essayez ceci

Pour créer un lien hypertexte, clic doit sur la cellule,.

- dans la fenêtre qui s'ouvre, partie gauche, sélectionnez "Fichier ou page Web existante

- dans "regarder dans " puis sélectionnez le fichier à ouvrir

merci Arturo 83,

Comme je suis un adepte du VBA, je n'ai jamais utilisé cette fonction. Il n'est jamais trop tard pour commencer ...

Bonne journée

Salut le fil...

Arturo t'as mis sur la voie, il faut aussi chercher.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'// Alors "D4:D10" est un exemple et correspond à la plage de cellulle qui vont ouvrir le fichier sur un click à toi de le changer à ta convenance
    If Not Application.Intersect(Target, Range("D4:D10")) Is Nothing Then Call ouvrir_fichier(Target.Row)
'// Pour Target tu peux choisir soit les lignes : Row, soit les colonnes : Column
End Sub

Donc là on lance la macro avec le numéro de ligne. Il faut juste adapter le code pour insérer dans ton ouverture le numéro du document,

Private Function ouvrir_fichier(Indice As Integer) As String
Dim NumeroDoc As Integer    '// Le numéro de ton document
NumeroDoc = Indice - 3    '// dans ton exemple le click sur D4 ouvre le document 1
    Set mon_fichier = CreateObject("Word.Application")
    With mon_fichier
        .visible = True
        .Documents.Open Filename:="C:\Users\toch\Desktop\Mes Documents\document" & NumeroDoc & ".docx"
        .Activate
    End With
    Set mon_fichier = Nothing
End Function

Bonne programmation

merci à vous deux

Jacques

Rechercher des sujets similaires à "ouvrir fichier word cliquant"