Création lien hypertexte lors de la création d'onglets

Résolu
Bonjour,
Bonjour tout le monde,
bon j'ai réussi à partir d'une liste de noms à creer des feuilles suivant un modèle, à nommer ces feuilles et à copier les noms dans une Feuil(Index).
Maintenant, je voudrais profiter pour aussi creer un lien dans cette Feuil(Index) qui pointerait sur chaque feuille.
Feuil(1) est créée et je voudrais un lien dans la cellule Feuil(Index).A3 qui pointe sur cette feuille, puis Feuil(Index).A4 qui pointe vers Feuil(2), etc...

Et je n'y arrive pas )-:
J'attends vos lumières !!!
le code de ma macro :

Configuration: Macintosh / Safari 13.1.2

6 réponses

  1. oupssss désolé, je ne connaissais pas ces balises pour présenter mon code.
    Je voudrais profiter de la création de l'onglet, après le End With, pour créer un hypertext pointant vers la feuille créée , et je bloque )-:

    Sub Creation_Onglets_Selon_Modele()
    
        Dim n As Range    'variable Nom
        Dim a As Range     'variable Adresse
        Dim l As Range       'variable ligne colonne Nom Index
        
        Application.ScreenUpdating = False
        
        Set n = Worksheets("Listes").Range("A2") 'cellule de départ
        Set a = Worksheets("Listes").Range("C2") 'cellule de départ
        Set l = Worksheets("Index").Range("B3") 'cellule de départ
        
        Do Until IsEmpty(n)   'boucle tant que n n'est pas vide
        
           l = n.Value    'on remplit Index
        
            Worksheets("Model").Copy after:=Worksheets(ThisWorkbook.Sheets.Count)
            'on crée les onglets en copiant le modèle en dernier
                 
              With Worksheets(ThisWorkbook.Sheets.Count) 'avec l'onglet créé
              
                .Name = n.Value             'on renomme onglet créé
                .Range("B2") = n.Value     'on remplit notre modèle
                .Range("A38") = n.Value   'on remplit notre modèle
                .Range("A39") = a.Value   'on remplit notre modèle
              
              End With
        
            Set n = n.Offset(1, 0)      'prochaine ligne
            Set a = a.Offset(1, 0)
            Set l = l.Offset(1, 0)
            
        Loop
    
        Application.ScreenUpdating = True
        
    End Sub
    0
    1. Contributeur
      as-tu essayé avec l'enregistreur de macros?
      0
  2. ben... non, un peu compliqué ça pour lui, non ?
    0
    1. Contributeur
      cela te permettra de découvrir comment créer un lien hypertexte vers la feuille, pour ensuite utiliser cette même technique dans ta macro.
      0
  3. ok, je regarde ça !!!
    0
    1. Contributeur
      Bonjour,

      voir ceci:

      http://boisgontierjacques.free.fr/pages_site/lienshypertextes.htm#CreationLienVBA

      un exemple:

      Option Explicit
      Sub lien()
      Dim Lig As Long
      For Lig = 3 To Worksheets("INDEX").Range("A" & Rows.Count).End(xlUp).Row
       Range("A" & Lig).Select
      ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:="'" & Range("A" & Lig).Value & "'" & "!A" & Lig, TextToDisplay:=Range("A" & Lig).Value
         ActiveCell.Offset(1, 0).Select
      Next
      End Sub
      


      voilà
      0
      1. Merci, je vois tout ça la semaine prochaine, mais j'ai du boulot !!!
        Un monde passionnant que celui du VBA, infini !!!
        0