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 -
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 !
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 !
A voir également:
- Lien hypertexte
- Lien url - Guide
- Créer un lien pour partager des photos - Guide
- Renommer un lien hypertexte ✓ - Forum Bugs et suggestions
- Lien copié ✓ - Forum Google Chrome
- Comment renommer un lien hypertexte - Forum Word
2 réponses
Bonjour,
Essaies ce code :
Cordialement
Patrice
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
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
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
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.
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.
Bonjour,
Désolé, le nom de ton fichier doit comprendre un ou plusieurs espaces, remplaces :
Désolé, le nom de ton fichier doit comprendre un ou plusieurs espaces, remplaces :
c.Hyperlinks.Add Anchor:=c, Address:="", _Par
SubAddress:=s.Name & "!A1", _
TextToDisplay:=s.Name
c.Hyperlinks.Add Anchor:=c, Address:="", _Patrice
SubAddress:="'" & s.Name & "'!A1", _
TextToDisplay:=s.Name