Lien hypertexte

Résolu
Dambail Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
Dambail Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -
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 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
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   Statut Membre Dernière intervention  
 
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 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
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   Statut Membre Dernière intervention  
 
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 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
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   Statut Membre Dernière intervention  
 
Je te remercie. Tout fonctionne a merveille. Maintenant, Je vais essayer de comprendre le code. Un grand merci !

Bonne continuation

Damien
0