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

antosiomaj

XLDnaute Nouveau
Arrggghhh, j'avais envoyé une réponse mais elle n'est pas passée...

Didier, je suis désolé de ne pas avoir été plus clair et concis depuis le départ. Je t'avouerai que je suis un vrai béotien en VBA. Tes solutions ont chaque fois fait évoluer la conception de mon fichier. Aujourd'hui j'envisage un système beaucoup plus efficace et 'intelligent' qu'initialement. Mais je n'ai pas les connaissances suffisantes pour y arriver seul.
Aussi je t'envoie un dernier fichier, la synthèse de toutes ces questions, sous forme d'un petit fichier qui je croie montre où je veux en venir.
j'essayes de faire un système de tracabilité pour des larves de crevette en écloserie (généralement ca fait sourire mais c'est vrai !). Mes larves passent par plusieurs types d'élevages au fur et à mesure de leur développement. Chaque étape est un fichier Excel (M,L,N) mais il y a plusieurs bassins dans chaque étape donc plusieurs feuilles de construction identique (M1, M2, M3...). A une date précise on transfert les animaux d'une étape à une autre, on saisi alors dans le fichier, via la liste déroulante le bassin source et/ou destination. J'aimerais donc réussir à créer des hyperliens entre tous ces bassins pour que par exemple en cliquant sur le n° du bassin précédent, j'arrive dans le fichier en question à la date du transfert.
j'ai éssayé avec ta dernière macro mais je perd la fonctionnalité du lien vers la feuille.
Par ailleurs je peux avoir plusieurs entrées et sorties par bassin (donc plusieurs colonnes de saisie pour des liste de liens identiques) donc si j'ai un peu compris ta macro, tu utilises offset pour désigner la colonne qui contient les dates, mais dans ce cas, il faut une macro différente par colonne ?!?

Si tu peux m'aider c'est vraiement super, sinon je te dis déjà merci pour l'aide que tu m'as apporté.

Cordialement
Antonin
 

myDearFriend!

XLDnaute Barbatruc
Bonsoir antosiomaj, Celeda, le Forum,

Pas très simple à comprendre ton histoire à vrai dire antosiomaj...

Mais bon, tes classeurs ayant pour seul but la surveillance d'un élevage de 'Robert' (voir ce Lien supprimé pour comprendre, et notamment la première phrase... :p) et si, en plus, tu arrives à créer un système de traçabilité de cette larve... alors, il est de mon devoir de faire mon possible pour t'aider !

Dans le classeur Mat.xls, tu devrais pouvoir essayer comme ça (un mélange de mes propositions précédentes) :
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 = '=Sorties'
        On Error GoTo 0
        If Len(ActiveCell.Value) = 0 Or Not ValidOk Then Exit Sub
        Set Cel = [Sorties].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

Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
Dim D As Long
      D = Target.Parent.EntireRow.Range('A1').Value
      On Error Resume Next
      With ActiveWorkbook.ActiveSheet
            .Cells(Application.Match(D, .Columns(1), 0), 1).Activate
      End With
End Sub
Et la même chose pour l'autre classeur, en remplaçant 'Sorties' par 'Entrées'...

Attention, pour que cette modification prenne effet, il convient de 'regénérer' les liens présents en feuilles M1, M2, E1 et E2 par sélections dans les listes déroulantes.

Cordialement,
 

antosiomaj

XLDnaute Nouveau
Bonjour didier,

Merci de ta macro, ca marche bien. J'ai bidouillé pendant 2 jours (la connection internet malgache est particulièrement instable) et j'y était presque arrivé mais il me manquait la fonction EntireRow.

Seulement voilà, comme tu as pu le voir dans ce dernier petit fichier ; j'ai à la fois des entrées et des sorties. Il me faut donc deux macros qui vont vers deux listes différentes d'hyperliens.

J'ai bêtement essayé de copier et de rajouter à suivre les mêmes macros mais avec 'Entrées' et 'Sorties' :
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 = '=Entrées'
On Error GoTo 0
If Len(ActiveCell.Value) = 0 Or Not ValidOk Then Exit Sub
Set Cel = [Entrées].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

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 = '=Sorties'
On Error GoTo 0
If Len(ActiveCell.Value) = 0 Or Not ValidOk Then Exit Sub
Set Cel = [Sorties].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

Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
Dim D As Long
D = Target.Parent.EntireRow.Range('A1').Value
On Error Resume Next
With ActiveWorkbook.ActiveSheet
.Cells(Application.Match(D, .Columns(1), 0), 1).Activate
End With
End Sub

mais ca na pas plu à Excel qui me dit : 'Ambiguous name detected : Workbook_SheetChange' quand je sélectionne un hyperlien dans une liste déroulante.

Je fais comment ? J'ai essayé un coup de pied dans l'unité centrale mais y veut rien savoir.

D'avance Merci

Antonin
 

myDearFriend!

XLDnaute Barbatruc
Bonsoir antosiomaj, Celeda,

Je pense que tu devrais pouvoir essayer comme ça :
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim Plage As Range, Cel As Range
Dim ValidOkE As Boolean, ValidOkS As Boolean
            On Error Resume Next
            With ActiveCell.Validation
                  ValidOkE = .Formula1 = '=Entrées'
                  ValidOkS = .Formula1 = '=Sorties'
            End With
            On Error GoTo 0
            If Len(ActiveCell.Value) = 0 Or (Not ValidOkE And Not ValidOkS) Then Exit Sub
            Set Plage = IIf(ValidOkE, [Entrées], [Sorties])
            Set Cel = Plage.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

Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
Dim D As Long
        D = Target.Parent.EntireRow.Range('A1').Value
        On Error Resume Next
        With ActiveWorkbook.ActiveSheet
                  .Cells(Application.Match(D, .Columns(1), 0), 1).Activate
        End With
End Sub
Je te souhaite bonne chance pour la suite.

Cordialement,
 

al1.2loin

XLDnaute Occasionnel
Re : Hyperlien dans liste déroulante

Bonjour, a tous je me permet de m immiscer dans le fil de la discussion, étant très novice en excel, je cherchais un moyen de mettre mes liens hypertextes dans un menu déroulant, alors j'ai repris tout bêtement vos exemples et cela marche avec seul une liste déroulante, si je veux en faire plusieurs par exemple les mettre par listes déroulantes alphabétiques, pouvez vous m'expliquer comment procéder. ci joint mon fichier pour mieux comprendre je que je veux.
 

Pièces jointes

  • Adresses_WEB.xlsm
    19.4 KB · Affichages: 19
  • Adresses_WEB.xlsm
    19.4 KB · Affichages: 27
  • Adresses_WEB.xlsm
    19.4 KB · Affichages: 28

skan73

XLDnaute Nouveau
Re : Hyperlien dans liste déroulante

Salut,

tout ça marche très bien, et je remercie les généreux trouveurs de solutions
Je ne connais pas du tout le VBA
J'aimerais pouvoir réaliser plusieurs listes différentes sur ce principe
Comment dois-je m'y prendre?
J'ai bien essayé de bidouiller le code, mais ça marche pas...

Etant donné la vétusté du sujet, j'espère que mydearfriend est toujours actif!!!
 

Discussions similaires

M
Réponses
7
Affichages
1 K
Moussa
M

Statistiques des forums

Discussions
312 392
Messages
2 088 004
Membres
103 694
dernier inscrit
YOHA