Lien hypertexte

Résolu
Dambail Messages postés 13 Statut Membre -  
Dambail Messages postés 13 Statut Membre -
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

  1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
     
    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
  2. Dambail Messages postés 13 Statut Membre
     
    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
    1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
       
      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
    2. Dambail Messages postés 13 Statut Membre
       
      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
    3. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 783
       
      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
    4. Dambail Messages postés 13 Statut Membre
       
      Je te remercie. Tout fonctionne a merveille. Maintenant, Je vais essayer de comprendre le code. Un grand merci !

      Bonne continuation

      Damien
      0