Lien hypertexte

Résolu/Fermé
Dambail Messages postés 10 Date d'inscription lundi 21 mars 2011 Statut Membre Dernière intervention 15 novembre 2014 - 10 févr. 2014 à 19:36
Dambail Messages postés 10 Date d'inscription lundi 21 mars 2011 Statut Membre Dernière intervention 15 novembre 2014 - 16 févr. 2014 à 16:36
Bonjour,

Je vous demande votre aide pour une macro (Au départ bidon) car je n'en finis pas.
Je n'ai pas de grande connaissance en VBA, juste les bases.

J'ai créé une petite macro qui me permettrait, à l'aide d'une feuille "Menu", de rapatrier le nom de chaque feuille existante du classeur.

Jusque la tout va bien. J'y mets ensuite des liens hypertextes vers les feuilles MANUELLEMENT. Tout fonctionne bien.

Seulement, si mon chef rajoute une feuille, je veux qu'elle s'affiche dans le menu, Respectant l'ordre des feuilles. Tout va bien jusqu'ici. Seul problème, mes liens hypertextes restent fixes sur la cellule, ce qui fait que le lien hypertexte ne correspond plus à la bonne feuille.

Voici le code :

Sub menu()

Dim x As Double, Feuille As Worksheet, Lder As Double, Cell As Range
x = 5
Sheets("Menu").Select
For Each Feuille In ActiveWorkbook.Sheets
For Each Cell In Range("Liste")
If Feuille.Name = Cell Then Exit For
If Feuille.Name <> "Original" And Feuille.Name <> "Menu" Then
Cells(x, 6) = Feuille.Name
End If
'Selection.Insert Shift:=xlDown
Next
x = x + 1
Next
End Sub

Un grand merci à tout ceux qui m'aideront !

2 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
11 févr. 2014 à 16:09
Bonjour,

Essaies ce code :
Dim s As Worksheet
Dim c As Range
Set c = ActiveWorkbook.Worksheets("Menu").Range("F5")
c.Resize(ActiveWorkbook.Worksheets.Count + 1).Clear
For Each s In ActiveWorkbook.Worksheets
If s.Name <> "Original" And s.Name <> "Menu" Then
c.Hyperlinks.Add Anchor:=c, Address:="", _
SubAddress:=s.Name & "!A1", _
TextToDisplay:=s.Name
Set c = c.Offset(1)
End If
Next s
--
Cordialement
Patrice
0
Dambail Messages postés 10 Date d'inscription lundi 21 mars 2011 Statut Membre Dernière intervention 15 novembre 2014
11 févr. 2014 à 17:17
Bonjour,

Je te remercie pour ta réponse.

J'ai essayé ton code. J'ai bien des liens hypertextes sur chaque cellule. Cependant quand je clique sur n'importe quel lien ca me dit "Référence non valide".

Pourrais-tu aussi m'expliquer rapidement le code. Je ne veux pas recopier bêtement mais apprendre un maximum.

Merci
Damien
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
Modifié par Patrice33740 le 11/02/2014 à 17:34
Quelle version d'Excel utilises-tu ?

Je viens de faire un copier coller du code ci dessus dans un classeur Excel 2003, puis dans un classeur Excel 2010, il fonctionne parfaitement dans les deux cas.

Est-tu sûr de l'avoir correctement copié ???

Pour comprendre le rôle de chaque mot VBA, places le curseur dans le mot et tapes F1.
0
Dambail Messages postés 10 Date d'inscription lundi 21 mars 2011 Statut Membre Dernière intervention 15 novembre 2014
11 févr. 2014 à 22:20
Je suis actuellement sur excel 2010. Mais nous utilisons excel 2003 au boulot.

J'ai refait l'essai de re - copier coller ton code. Toujours la meme chose. "Référence non valide".

Merci pour l'astuce "F1" je connaissais pas.
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
13 févr. 2014 à 19:35
Bonjour,

Désolé, le nom de ton fichier doit comprendre un ou plusieurs espaces, remplaces :
    c.Hyperlinks.Add Anchor:=c, Address:="", _
SubAddress:=s.Name & "!A1", _
TextToDisplay:=s.Name
Par
    c.Hyperlinks.Add Anchor:=c, Address:="", _
SubAddress:="'" & s.Name & "'!A1", _
TextToDisplay:=s.Name
Patrice
0
Dambail Messages postés 10 Date d'inscription lundi 21 mars 2011 Statut Membre Dernière intervention 15 novembre 2014
16 févr. 2014 à 16:36
Je te remercie. Tout fonctionne a merveille. Maintenant, Je vais essayer de comprendre le code. Un grand merci !

Bonne continuation

Damien
0