Hyperlien dans liste déroulante

A

antosiomaj

Guest
Bonjour à tous,

Dans le cadre d'un système de tracabilité je voudrais automatiser des hyperliens ;
je voudrais que des hyperliens (vers d'autres fichiers excel) soit sélectionnable via une liste déroulante préparamétrée.

Ci joint le fichier exemple

Merci d'avance de vos réponses

Antonin [file name=exce_20060224072615.zip size=7222]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/exce_20060224072615.zip[/file]
 

Pièces jointes

  • exce_20060224072615.zip
    7.1 KB · Affichages: 494

Celeda

XLDnaute Barbatruc
Bonjour,

Je viens d'essayer ce code que j'ai récupéré sur ce lien (et cette fois ci je ne ferais pas un impair!!! :) )
https://www.excel-downloads.com/threads/liste-deroulante-et-liens.39255/

donc

colle cette macro (Alt F11) dans le module de la feuille :

Option Explicit
'---------------------------------------------------------------------------------------
' Auteur : myDearFriend! (Didier Fourgeot)
' Date : 06/06/2005
' Sujet : Liste de liens
'---------------------------------------------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range('A4:A14')) Is Nothing Then
On Error Resume Next
ThisWorkbook.FollowHyperlink Target.Value
On Error GoTo 0
End If
End Sub

(j'ai adapté la plage ici de la liste déroulante A4:A14)

cela renvoie bien sur chaque fichier Ouvert en A1;

vérifie bien chez toi, svp.
Merci Mdf.


Celeda
 

antosiomaj

XLDnaute Nouveau
Merci beaucoup Celeda,

Au passage merci aussi pour toutes tes recaps sur les formules (Autres formules 1, 2, 3).

Ta macro marche au poil, malheureusement ce n'est pas exactement ce que je voulais ; en fait je cherche à créer un hyperlien en le selectionnant via la liste déroulante. Je ne veux pas aller directement dans le fichier lié au moment de la sélection mais que par la suite en consultant le fichier et en cliquant sur la cellule, cela ouvre le fichier lié.

Encore merci de partager tes talents

Antonin
 

Celeda

XLDnaute Barbatruc
Bonsoir,

Je suis désolée que cela ne marche pas; :(

j'ai discuté de ce que tu demandais mais cela ne semble pas très clair;

pourrais-tu reprendre tes fichiers et indiquer plus clairement quel type de lien tu veux faire afficher, dans quel classeur, svp.

Celeda
 

myDearFriend!

XLDnaute Barbatruc
Bonsoir antosiomaj, Celeda :)

Je crois avoir compris ce que souhaite notre ami antosiomaj...

Ci-joint donc le classeur modifié en fonction de ce que j'ai cru comprendre. Je crois que notre ami souhaite que la procédure créée le lien dans la cellule contenant la liste de validation lors du choix d'un élément (au lieu de résoudre le lien comme le fait le code que j'avais fait précédemment).

Pour cela, j'utilise une seule et unique procédure évènementielle (dans le module de code de la feuille concernée) :
Private Sub Worksheet_Change(ByVal Target As Range)
      If Not Application.Intersect(ActiveCell, Range('A4:A14')) Is Nothing Then
            Hyperlinks.Add Anchor:=ActiveCell, Address:=ActiveCell.Value
      End If
End Sub
Attention toutefois, ça ne fonctionnera que si les classeurs 'cibles' sont présents dans le même répertoire que le classeur contenant cette procédure (et donc la liste de validation)...


Cordialement, [file name=hyperderoulant.zip size=6590]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/hyperderoulant.zip[/file]
 

Pièces jointes

  • hyperderoulant.zip
    6.4 KB · Affichages: 563

Celeda

XLDnaute Barbatruc
Bonjour,


:woohoo: :woohoo: :woohoo: :woohoo:

et vlan!! didier my friend a dégainé!!

et vlan!! mon pantalon est tombé

Il a touché les bretelles en un papillonnement
de cil!!!

bon ok, je ramasse mes pens et te fais une pirouette

de ....merci merci merci

un triple saut arrière de sourires

une vrille envolée de bisous!!!!

et hop !!!!

je te donne la medaille d'or!!! mon ami


mais la medaille d'or d'XLD!!! et vi!!!

maintenant à voir si notre visiteur antosiomaj,
est comblé.

Celeda ;)
 

antosiomaj

XLDnaute Nouveau
MERCI !!!
Désolé que vous n'ayez reçu de réponses plus tôt, j'avais pourtant posté une réponse il y a trois jours mais visiblement elle n'est pas arrivée.

Donc je reprends : Super ! C'est exactement ce que je voulais faire, la macro marche à merveille. Merci MDF !

Question : N'est-il pas possible de trouver une solution au fait que tous les fichiers doivent se trouver dans le même dossier ? Sachant que j'aurais plusieurs type de fichiers Excel dans plusieurs dossiers mais qu'ils seront bien définis et stables (pas de création de fichier à postériori).

Merci d'avance à vous deux (ou à d'autres pros de la macro) pour vos réponses.

Antonin
 

myDearFriend!

XLDnaute Barbatruc
Bonsoir antosiomaj, Celeda :kiss:,

Ci-joint l'exemple adapté à ton problème, je pense...

Pour simplifier la mise-à-jour par l'utilisateur et éviter la modification du code VBA à chaque modification de la liste, j'ai préféré rassembler l'ensemble des liens disponibles dans une zone nommée 'listLiens' (en Sheet2).
Ainsi, n'importe où dans le classeur, toute cellule avec validation de données comportant la formule =listLiens sera automatiquement prise en charge par la macro.

J'utilise cette fois la procédure suivante (dans le module de code de l'objet ThisWorkbook) :
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim ValidOk As Boolean
      On Error Resume Next
      ValidOk = ActiveCell.Validation.Formula1 = '=listLiens'
      On Error GoTo 0
      If Len(ActiveCell.Value) = 0 Or Not ValidOk Then Exit Sub
      Sh.Hyperlinks.Add Anchor:=ActiveCell, Address:=[listLiens].Find _
            (what:=ActiveCell.Value, lookin:=xlValues).Hyperlinks(1).Address
End Sub
Espérant avoir répondu à ton attente...

Cordialement,

PS : j'en profite au passage... et hop ! une bise pour Celeda.

Message édité par: myDearFriend!, à: 01/03/2006 01:49
 

Pièces jointes

  • mDF_ListeValidationLiens.zip
    15.7 KB · Affichages: 254

myDearFriend!

XLDnaute Barbatruc
Ci-joint le fichier...

Cordialement, [file name=mDF_ListeValidationLiens_20060301014606.zip size=15022]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/mDF_ListeValidationLiens_20060301014606.zip[/file]
 

Pièces jointes

  • mDF_ListeValidationLiens_20060301014606.zip
    14.7 KB · Affichages: 226

antosiomaj

XLDnaute Nouveau
TROP FORT !!!

Bah tout simplement bravo, c'est net sans bavure, je suis impréssionné.

Au passage sauriez-vous où je peux trouver de bonnes explications pour démarrer en VBA ? Ca donne envie !!!

mDF, Celeda, encore merci
A bientôt
Antonin
 

Celeda

XLDnaute Barbatruc
Bonjour,

Ne me remercie pas antosiomaj, je n'ai rien à voir dans cette histoire de vba !!


:woohoo: :woohoo: ah oui comme tu dis,

c'est notre Hercule!!ce mDF!!!

notre poids lourds du forum!!!! (encore un!!)

(je parle pas de son physique of course!!!) ;)

en plus la méthode d'une deuxième feuille, c'est concis et précis et cela ressemble tellement à mDF!!!

Merci et merci à toi antosiomaj, car grâce à ta question, tu viens delargir le champ d'intervention sur les liens hypertextes.

:kiss: :kiss:

Celeda


;)
 

myDearFriend!

XLDnaute Barbatruc
Bonjour antosiomaj, Celeda,

Une tentative supplémentaire pour répondre à ta dernière question.
Ci-joint le classeur exemple modifié.

La procédure est modifiée ainsi :
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Cel As Range
Dim ValidOk As Boolean
      On Error Resume Next
      ValidOk = ActiveCell.Validation.Formula1 = '=listLiens'
      On Error GoTo 0
      If Len(ActiveCell.Value) = 0 Or Not ValidOk Then Exit Sub
      Set Cel = [listLiens].Find(what:=ActiveCell.Value, lookin:=xlValues)
      Sh.Hyperlinks.Add Anchor:=ActiveCell, Address:=Cel.Hyperlinks(1).Address
      ActiveCell.Hyperlinks(1).SubAddress = Cel.Hyperlinks(1).SubAddress
End Sub
[file name=mDF_ListeValidationLiens_20060306114615.zip size=15634]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/mDF_ListeValidationLiens_20060306114615.zip[/file]
 

Pièces jointes

  • mDF_ListeValidationLiens_20060306114615.zip
    15.3 KB · Affichages: 144

antosiomaj

XLDnaute Nouveau
Super ! Ca marche...

Alors encore une petite question :

Sachant que tous mes fichiers ont en commun une colonne (A) qui est une succession de dates sans interruption (du 1/1/05 au 1/1/12), que chaque lien sélectionné dans la liste déroulante correspondra à une date (car sur la même ligne) est-il possible que le lien aille chercher la même date dans le fichier-feuille cible ? (Sorte de lien + Vlookup)

Là je pense que ca devient franchement difficile non ?

En tout cas merci et bonne continuation.

Antonin
 

myDearFriend!

XLDnaute Barbatruc
Re,

A vrai dire Antonin, le plus difficile c'est d'essayer d'adapter un morceau de code au fur et à mesure des renseignements que tu veux bien donner... car si tu avais dit ça depuis le début, on aurait dès le départ abandonné la création des liens hypertextes à la volée pour s'orienter sur une procédure VBA 100%...

Bon, comme je n'ai pas vraiment envie de recommencer tout depuis le départ, tu trouveras ci-joint une ultime tentative pour répondre à cette dernière demande... Je supprime donc la modification précédente et j'ajoute cette fois la gestion de l'évènement SheetFollowHyperlink() :

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim ValidOk As Boolean
      On Error Resume Next
      ValidOk = ActiveCell.Validation.Formula1 = '=listLiens'
      On Error GoTo 0
      If Len(ActiveCell.Value) = 0 Or Not ValidOk Then Exit Sub
      Sh.Hyperlinks.Add Anchor:=ActiveCell, Address:=[listLiens].Find _
            (what:=ActiveCell.Value, lookin:=xlValues).Hyperlinks(1).Address
End Sub

Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
Dim D As Long
      D = Target.Parent.Offset(0, 1).Value
      On Error Resume Next
      With ActiveWorkbook.ActiveSheet
            .Cells(Application.Match(D, .Columns(1), 0), 1).Activate
      End With
End Sub
Cordialement,
[file name=PourAntosiomaj.zip size=17689]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/PourAntosiomaj.zip[/file]
 

Pièces jointes

  • PourAntosiomaj.zip
    17.3 KB · Affichages: 134

Discussions similaires

M
Réponses
7
Affichages
1 K
Moussa
M

Statistiques des forums

Discussions
312 393
Messages
2 087 960
Membres
103 686
dernier inscrit
maykrem