Ouvrir un document de mon ordi en cliquant sur une cellule en fonction de la personne

Bonjour,

j’aimerai bien ouvrir un document word par exemple en cliquant sur une cellule. Jusque la, ca va avec les liens hypertextes ca peut se faire ou sinon j’ai un début de code également :

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

Mon principal problème que j’ai une liste déroulante, j’aimerai que quand je sélectionne la personne B par exemple puis que je clique sur la cellule B4 : le doc 1 s’ouvre.
Et quand je sélectionne la personne C par exemple puis que je clique sur la cellule B4 : le doc 2 s’ouvre.
Il faudrait que le doc s’adapte à la personne sachant que je clique toujours sur la même cellule.

Si vous avez des meilleures idées n’hésitez pas.

Merci de votre temps.

Quentin

Bonjour

Ci-joint ma proposition

Onglet « Feuil2 » colonne A la liste des personnes colonne B le nom du document à ouvrir pour chacun d’eux

Onglet « Feuil1 » cellule A2 la liste déroulante cellule B2 par formule la récupération du nom du document correspondant à ouvrir dans l’onglet « Feuil2 »

En cellule D4 la sélection de celle-ci qui déclenche l’ouverture du document

Dans ton code d’ouverture en tout début une variable fichier qui récupère le nom du document à ouvrir en cellule B2

Puis la ligne de code d’ouverture dans laquelle cette variable est associée

Ce qui donne ce code :

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

Le doc à ouvrir évolue en fonction de son nom en cellule B2 qui est actualisé au grés du choix de la liste déroulante cellule A2

Il est possible en plus du nom du fichier d’intégrer son chemin

Pour cela onglet « Feuil2 » colonne B mettre l’intégralité du chemin avec le nom du fichier

Puis modifier la ligne de code d’ouverture ainsi :

.Documents.Open Filename:= fichier

C’est ou le nom du fichier ou l’intégralité chemin fichier colonne B onglet « Feuil2 » pas de panachage

A rajouter éventuellement la condition de la présence du nom du fichier à ouvrir Onglet « Feuil1 » cellule B2 pour l’exécution du traitement d’ouverture ainsi :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range(« B2 ») <> «  » Then
If Not Application.Intersect(Target, Range(« D4 »)) Is Nothing Then Call ouvrir_fichier
End If
End Sub

A adapter tout cela à ton contexte

Fais des essais et dis moi

Classeur1.xlsm (18,5 Ko)

1 « J'aime »

Merci pour le retour, c’est claire et bien expliqué. Serait il possible que vous m’aidiez a transposer cela avec plusieurs fichiers par personne, je m’explique :
personne 1 va avoir 5 fichiers par exemple et chacun sera associé à une cellule dans la feuille afin d’activer le doc. A5 = doc 1, B8 = doc 2, F14 = doc 3 …
Ensuite la personne 2 aura aussi 5 fichiers et aura les mêmes cellules d’activation mais pas les memes documents? Ex : A5 = doc 4, B8 = doc 5, F14 = doc 6 …
Et ainsi de suite.

Classeur1.xlsm (19,4 Ko)

Je ne sais pas si c’est assez clair mais je vous ai mis un fichier excel bien rangé comme je le souhaite pour y voir mieux.
Merci encore.

Pas très claire ton affaire

A5/B8/F14 sont les listes déroulantes ? dans lesquelles chacune aura ses personnes avec ses propres fichiers à ouvrir

Merci d’être plus explicatif car je suis un peu dans le brouillard

En fait, la liste comporte uniquement les personnes. Les cellules sont les endroits je veux cliquer pour ouvrir le document (comme la cellule D4 nommé ouverture que vous avez codé). Par exemple, si je clique sur A5, je veux que ça ouvre le doc1 et si je clique sur B8, il faut que ca ouvre le doc 2 …
Ces cellules qui vont ouvrir les docs ne changeront pas d’une personne à l’autre, ce qui doit changer, c’est le doc selon le choix que j’ai fait de la personne. Si je clic sur A5 pour la personne 1, ce ne doit pas être le meme doc qui s’ouvre que pour la personne 2.

Est ce plus claire ?

Si j’ai bien compris

Nouvelle version ci-jointe

En onglet « Feuil2 » colonne A les noms des personnes de la colonne B à D les fichiers à ouvrir respectivement pour les cellules sélectionnées : D4/A5/D8

Plus de formule en cellule B2 pour la récupération du document à ouvrir en fonction du choix de la personne cellule A2 et de la sélection de l’une d’entre elles parmi D4/A5/D8
C’est un traitement VBA

Testes et dis moi

Classeur3.xlsm (21,0 Ko)

top merci beaucoup !

Ravi que cela te convienne
Au plaisir de te revoir

Re bonjour
Serait il possible de permettre l’ouverture d’autres types de fichier et pas uniquement des Word ? Par exemple, autoriser également les PDF.
Je ne trouve pas quoi mettre à la place de Word.Application.

Sub ouvrir_fichier()
Set mon_fichier = CreateObject(« Word.Application »)
fichier = Range(« B2 »)
With mon_fichier
.Visible = True
.Documents.Open Filename:=« C:\Users\quent\Desktop » & fichier
.Activate
End With
Set mon_fichier = Nothing
End Sub

MErci

Bonjour

Ci-joint une nouvelle version adaptée
Testes et dis moi

Classeur3.xlsm (21,7 Ko)

Super, ça marche.
Pouvez vous juste autoriser les png, pdf et mov en tout comme j’ai essayé de faire maladroitement svp ?
car j’ai plusieurs types de fichier différents, merci.

Sub ouvrir_fichier()
Set mon_fichier = CreateObject(« Word.Application »)
fichier = Range(« B2 »)
If fichier <> «  » Then
If Split(fichier, « . »)(1) = « mov »
Or
Split(fichier, « . »)(1) = « png »
Or
Split(fichier, « . »)(1) = « pdf »
Then
ThisWorkbook.FollowHyperlink « C:\Users\quent\Desktop » & fichier
Else
With mon_fichier
.Visible = True
.Documents.Open Filename:=« C:\Users\quent\Desktop » & fichier
.Activate
End With
End If
End If
Set mon_fichier = Nothing
End Sub

Tu trouveras ci-joint une nouvelle version qui inclus un nouveau traitement pour l’ouverture de n’importe quel type de fichier
traitement : ouvrir_fichier2

J’ai laissé le premier à toutes fins utiles

Testes et dis moi

Classeur3.xlsm (22,1 Ko)

1 « J'aime »

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.