Plusieurs Liens hypertexte dans la même cellule et des références dans +ieures pages

DoudouNours

XLDnaute Junior
Bonsoir à tous.

J'explique la formule VBA de mon classeur excel joint.

Sur la feuil1 en case F2, je rentre un code qu'il vient chercher dans la feuille Liste1 et il me donne ensuite la description du code (s'affiche entre G2 et N2 de feui1) ainsi que pour chacun d'entre eux, le lien hypertexte approprié en O2.

Par exemple si j'inscrit "4" en F2 il me met "floc" entre G2 et N2 et le lien associé en O2, en l'occurence un lien qui mène à la feille "8" du nom "floc"

J'aurais aimé savoir faire 4 choses.

En 1, faire en sorte que si je met le chiffre 2 en F2, c'est à dire "ytreza", il me propose les deux liens différents disponible (ytreza01 et ytreza02 de la feuille Liste1) dans la case O2 de Feuil1 sous forme de menu déroulant dans le cas ou il y aurait beaucoup de liens. Si c'est le menu déroulant est trop compliqué à créer insérer alors les liens en O3, O4 etc...en plus du lien en "O2"

En 2, faire en sorte que dans tous les cas, lorsque que j'inscris un code en F2, il aille, non pas seulement chercher en Liste1 comme actuellement, mais aussi en Liste2, Liste3 etc... suivant le nombre de listes.(J'en aurais une 10ène environ). Tout en gardant le fait que si il y a plusieurs codes similaires, comme le "2", il m'affiche ceux de toutes les feuilles.

En réalité et dans ce cas présent si j'inscris "2" en case "F2" il m'affichera donc, B]ytreza[/B entre G2 et N2 et les 3 liens différents ytreza01, ytreza02 et ytreza03 s'afficheront sous forme de menu déroulant en O2 ( ou si ce n'est pas possible et je répète en plusieures cases en O2, O3, O4 etc.. .)

En 3, faire en sorte que si je supprime le contenu de "F2" (dans le cas ou j'aurais déjà entré quelquechose), il me réinscrive "Code?" dans cette même case et me rajoute automatiquement mes trois petits points "..." entre G2 et N2 ainsi que dans la case "O2", en fait comme lorsque vous ouvrez mon fichier d'origine.

Enfin en 4, faire en sorte que lorsque que j'inscris n'importe quel code en "F2" qui ne se trouve dans aucune des listes proposées, il m'inscrive "Code indisponible" entre G2 et N2.

Merci du coup de main si vous pouvez et j'espère m'être bien fait comprendre.
 

Pièces jointes

  • En cours amélioration du module de recherche rapide.xlsm
    32.2 KB · Affichages: 155

Hippolite

XLDnaute Accro
Re : Plusieurs Liens hypertexte dans la même cellule et des références dans +ieures p

Bonjour,
Une variante sans lien hypertexte pour réduire le nombre de clic
A+
 

Pièces jointes

  • module de recherche rapide+.xls
    92.5 KB · Affichages: 208
  • module de recherche rapide+.xls
    92.5 KB · Affichages: 226
  • module de recherche rapide+.xls
    92.5 KB · Affichages: 244
Dernière édition:

DoudouNours

XLDnaute Junior
Re : Plusieurs Liens hypertexte dans la même cellule et des références dans +ieures p

Simpa ton astuce sans clics mais je souhaite tout de même qu'on ai le temps de voir la description et donc changer si on s'est trompé de code.

Je ne comprend pas l'utilité de "réinitialisation de liste" Bref C'est pas grave.

En gros, ce n'est pas tout à fait ce que je souhaite mais sans vouloir te vexer bien sur:eek:.

Je vais quand même faire plus simple.
J'annule si tu veux le fait d'avoir plusieures listes sur plusieures pages.

J'aurais donc environs 1000 lignes sur une seule feuille.

Ton menu déroulant est bien dans le cas de doublons mais j'aimerai tout de même garder le choix du clic sur le liens correspondant.

Dans ce cas lorsqu'on choisis "2" il me propose donc "ytreza01" "ytreza02" ou "ytreza03" comme dans ton fichier, et ensuite on clique sur le lien ou pas. (Je sais c'est tordu mais bon...;))

Ensuite lorsqu'on inscris un code ne se trouvant pas dans la liste, j'aimerai qu'il m'indique (code erroné) ou autre.

Et enfin, si cela est possible lorsqu'on supprime le contenu de "F2" il m'inscrive "Code?" dans cette même case et les "trois petits points" "..."dans les deux cases suivantes.

Merci d'avance.

A plus
 

Hippolite

XLDnaute Accro
Re : Plusieurs Liens hypertexte dans la même cellule et des références dans +ieures p

Bonjour,
Je ne comprend pas l'utilité de "réinitialisation de liste"
C'est pour la création et le tri de la liste globale à partir des listes, à utiliser si les listes ont été modifiées.

Ajoute un bouton
VB:
Private Sub CommandButton1_Click()
    On Error Resume Next
    Application.Goto Reference:=Sheets(Feuil1.Range("G2").Value).Range("A1")
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Address = "$F$2" Then
        Application.EnableEvents = False
        n = Application.CountIf(Fliste.Range("A:A"), Target)
        Select Case n
        Case 0
            If Target = "" Then
                Target.Value = "code ?"
                Target.Offset(0, 1) = "..."
            Else
                Target.Offset(0, 1) = "(code erronné)"
            End If
        Case 1
            Target.Offset(0, 1) = Fliste.Range("A:A").Find(Target, LookAt:=xlWhole).Offset(0, 1)
        Case Is > 1
            Target.Offset(0, 1).Select
            SendKeys "%{down}"
        End Select
        Application.EnableEvents = True
    End If
End Sub
A+
 
Dernière édition:

DoudouNours

XLDnaute Junior
Re : Plusieurs Liens hypertexte dans la même cellule et des références dans +ieures p

Salut.

Bon, j'ai mis un bon moment avant d'éplucher les codes car je débute vraiment dans excel (qui me passionne de plus en plus d'ailleurs).

Tes formules marchent nickel et en commençant à faire la mise en place de mon fichier final, je me suis aperçu que quelque chose n'allais pas et c'est ma faute me semble t-il.

Je m'explique.

Dans le fichier d'origine que je t'ai envoyé, les liens allaient vers des pages mais je pouvait quand même attribuer un lien vers des fichiers extérieur à excel, genre des PDF.
Mais avec tes formules et en remplaçant ces liens vers pages par des liens vers PDF, cela ne fonctionne pas j'ai l'impression. C'est la que c'est ma faute car j'aurais du t'en parler avant.
A ce que j'ai compris, il faut que la page et le lien aient le même nom sinon ça ne fonctionne pas.

Si je peux prendre encore un peu de ton temps, comment puis-je faire pour arriver à cela STP.
 

Hippolite

XLDnaute Accro
Re : Plusieurs Liens hypertexte dans la même cellule et des références dans +ieures p

Bonsoir,
Non testé, je n'ai pas excel sous la main.
En supprimant le bouton et en se rapprochant de ta présentation initiale, deux variantes suivant la façon de stocker les liens
colonne C : hyperlien
colonne D : chemin complet + le nom du fichier
VB:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Address = "$F$2" Then
        Application.EnableEvents = False
        n = Application.CountIf(Fliste.Range("A:A"), Target)
        Select Case n
        Case 0
            If Target = "" Then
                Target.Value = "code ?"
                Target.Offset(0, 1) = "..."
            Else
                Target.Offset(0, 1) = "(code erronné)"
            End If
        Case 1
            set c = Fliste.Range("A:A").Find(Target, LookAt:=xlWhole)
			Target.Offset(0, 1) = c.Offset(0, 1)
			
			''Variante 1, colonne C : hyperlien
			'ActiveSheet.Hyperlinks.Add Anchor:=Target.Offset(0, 2), Address:="", _
			'SubAddress:= c.Offset(0, 2).SubAddress, TextToDisplay:="Atteindre"
			
			'Variante 2, colonne D : chemin complet + le nom du fichier
			ActiveSheet.Hyperlinks.Add Anchor:=Target.Offset(0, 2), Address:="", _
			SubAddress:= c.Offset(0, 3).Value, TextToDisplay:="Atteindre"
			
        Case Is > 1
            Target.Offset(0, 1).Select
            SendKeys "%{down}"
			
			''Variante 1, colonne C : hyperlien
			'ActiveSheet.Hyperlinks.Add Anchor:=Target.Offset(0, 2), Address:="", _
			'SubAddress:= c.Offset(0, 2).SubAddress, TextToDisplay:="Atteindre"
			
			'Variante 2, colonne D : chemin complet + le nom du fichier
			ActiveSheet.Hyperlinks.Add Anchor:=Target.Offset(0, 2), Address:="", _
			SubAddress:= c.Offset(0, 3).Value, TextToDisplay:="Atteindre"
			
        End Select
        Application.EnableEvents = True
    End If
End Sub
 
Dernière édition:

DoudouNours

XLDnaute Junior
Re : Plusieurs Liens hypertexte dans la même cellule et des références dans +ieures p

Bon, j'ai du mal.

Dans mon exemple et avec ta formule, je n'arrive pas à aller au lien de cette image par exemple lorsque je choisis "1" soit "azerty". "Fichier joint"

J'ai essayé avec et sans le bouton mais il m'amène à la feuille "azerty" du classeur au lieu de la photo.

Autre chose, bizarrement lorsque je choisissait un code avec plusieures références identiques, le menu déroulant s'affichait automatiquement avant et maintenant "Code? quand on supprime et les 3 petits point ont aussi disparus.

Je me sent largé:eek:
 

Pièces jointes

  • module de recherche rapide+.xls
    92 KB · Affichages: 120
  • Sweet.JPG
    Sweet.JPG
    34.1 KB · Affichages: 131
  • module de recherche rapide+.xls
    92 KB · Affichages: 135
  • module de recherche rapide+.xls
    92 KB · Affichages: 143

Hippolite

XLDnaute Accro
Re : Plusieurs Liens hypertexte dans la même cellule et des références dans +ieures p

Bonjour,
Essaie avec les listes modifiées dans la pj
j'ai également oublié de supprimer une ligne de code
Le fichier a été modifié via open office, ça introduit parfois des anomalies
Je vérifierai lundi si ça ne marche pas.
A+
 
Dernière édition:

Hippolite

XLDnaute Accro
Re : Plusieurs Liens hypertexte dans la même cellule et des références dans +ieures p

Bonjour,
Le parefeu trop sévère ne me permettant pas d'envoyer un fichier avec macro, je te laisse le soin de réinstaller les macros dans le fichier sans macro :

Dans Feuil1 :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Address = "$F$2" Then
        Application.EnableEvents = False
        n = Application.CountIf(Fliste.Range("A:A"), Target)
        Select Case n
        Case 0
            If Target = "" Then
                Target.Value = "code ?"
                Target.Offset(0, 1) = "..."
                Target.Offset(0, 9).Clear
            Else
                Target.Offset(0, 1) = "(code erronné)"
                Target.Offset(0, 9).Clear
            End If
            Range("F2").Select
        Case 1
            Set c = Fliste.Range("A:A").Find(Target, LookAt:=xlWhole)
            Target.Offset(0, 1) = c.Offset(0, 1)
'           Composition de la liste
'           colonne A : Code
'           colonne B : Nom à afficher
'           colonne C : chemin complet + le nom du fichier, "" si lien vers ce classeur
'           colonne D : sous-adresse
            If c.Offset(0, 3).Value = "" Then 'Lien sans sous-adresse
                ActiveSheet.Hyperlinks.Add Anchor:=Target.Offset(0, 9), _
                        Address:=c.Offset(0, 2).Value, _
                        TextToDisplay:="LIEN"
            Else 'Lien avec sous-adresse
                ActiveSheet.Hyperlinks.Add Anchor:=Target.Offset(0, 9), _
                        Address:=c.Offset(0, 2).Value, _
                        SubAddress:=c.Offset(0, 3).Value, _
                        TextToDisplay:="LIEN"
            End If
            Range("F2").Copy
            Target.Offset(0, 9).PasteSpecial Paste:=xlPasteFormats
            Range("F2").Select
        Case Is > 1
            Target.Offset(0, 1).Select
            SendKeys "%{down}"
        End Select
        Application.EnableEvents = True
        Application.CutCopyMode = False
    End If
    
    If Target.Address = "$G$2" And Target <> "" Then
        Set c = Fliste.Range("B:B").Find(Target, LookAt:=xlWhole)
        If c.Offset(0, 2).Value = "" Then 'Lien sans sous-adresse
            ActiveSheet.Hyperlinks.Add Anchor:=Target.Offset(0, 1), _
                    Address:=c.Offset(0, 1).Value, _
                    TextToDisplay:="LIEN"
        Else 'Lien avec sous-adresse
            ActiveSheet.Hyperlinks.Add Anchor:=Target.Offset(0, 1), _
                    Address:=c.Offset(0, 1), _
                    SubAddress:=c.Offset(0, 2).Value, _
                    TextToDisplay:="LIEN"
        End If
        Range("F2").Copy
        Target.Offset(0, 1).PasteSpecial Paste:=xlPasteFormats
        Application.CutCopyMode = False
        Range("F2").Select
    End If
    
End Sub
Dans Fliste (inchangé) :
VB:
Private Sub CommandButton1_Click()
    iniListe
End Sub

Public Sub iniListe() ' fusionne les listes
    Dim Sh As Worksheet
    Fliste.Range("A:E").Clear
    For Each Sh In Sheets
        If Sh.Name Like "Liste*" = True And Sh.Name <> "Liste" Then
            DLgnSh = Sh.Cells(Rows.Count, 2).End(xlUp).Row
            DLgnListe = Fliste.Cells(Rows.Count, 2).End(xlUp).Row
            Sh.Range("A1:E" & DLgnSh).Copy _
                    Destination:=Fliste.Range("A" & DLgnListe + 1)
        End If
    Next Sh
    Fliste.Columns("A:D").Sort Key1:=Range("A1"), Order1:=xlAscending, _
                   Key2:=Range("B1"), _
                   Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, _
                   MatchCase:=False, Orientation:=xlTopToBottom, _
                   DataOption1:=xlSortNormal, DataOption2:=xlSortNormal
End Sub
A+
 

Pièces jointes

  • module de recherche rapide+2.xls
    87 KB · Affichages: 149
Dernière édition:

DoudouNours

XLDnaute Junior
Re : Plusieurs Liens hypertexte dans la même cellule et des références dans +ieures p

:cool: Tu es magique Hippolite, c'est pile poil ce qu'il faut pour mettre en oeuvre mon fichier. Il me reste plus qu'à insérer mes lignes et c'est partit. Il faudra que je fasses gaffe car les feuilles de mon classeur commencé ne correspondent pas forcement avec celles de l'exemple envoyé mais là quand même je devrais m'en sortir. (je t'entends déjà dire: "ya intérêt"

En tout cas le sujet est clos mais je ne sais pas ou ni comment faire en sorte que dans la liste des discussions du forum on puisse voir qu'il est clos justement. (si jamais c'est possible)

Tant que je te tiens encore, je voulais que tu me confirmes que lorsque je met un fichier PDF qui s'appelle par exemple "Azerty.pdf" et que dans mon lien je veux qu'il s'ouvre à la page 3 je dois bien le nommer "chemin complet+Azerty.pdf#page=3" non ? J'avais déjà pratiqué cette méthode mais visiblement je dois me tromper d'une lettre ou autre chose.

A+

Ps: tu ne donnes pas de cours par hasard ?:rolleyes:
 

DoudouNours

XLDnaute Junior
Re : Plusieurs Liens hypertexte dans la même cellule et des références dans +ieures p

Peut-tu me dire pourquoi à des moments pour la liste déroulante il m'indique l'erreur "Vous ne pouvez pas faire référence à d'autres feuilles ou classeurs pour les critères Validations des données".

Comment dois-je réécrire la formule des validation des données en G2 pour que ça ne bug pas.

merci
 

Discussions similaires

Statistiques des forums

Discussions
312 298
Messages
2 086 979
Membres
103 417
dernier inscrit
abaabdelghani