Macro - Création d'un lien vers une nouvelle feuille
Bonjour à tous !
Un peu intimidé de poster dans le forum mais je me lance
Je suis en train de créer petit à petit un fichier qui centralisera de nombreuses informations pour une équipe de sport.
La feuille 1 "Liste" est la base de données en quelques sortes, j'ai pour le moment "développer" un bouton qui génère une feuille pour chaque sportif de la liste, se basant sur le modèle de la feuille 2 "Fiche".
Pour avoir une navigation plus rapide dans le fichier, car au final il y aura surement une 20aine de feuilles, j'aimerais créer sur la feuille 1 "Liste" un lien sur le nom de chaque sportif qui renvoi à sa feuille personnelle.
J'ai commencé par un peu fouiller de mon côté en faisant un enregistrement de macro et je trouve ce code :
ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
"Melon!A1", TextToDisplay:="Melon"J'ai la sensation de plus au moins comprendre la ligne de code, mais je ne sais pas comment le tourner pour que cela s'applique à chaque sportif de la liste.
Auriez-vous des pistes ?
Merci à vous
Bonjour
J'aime pas trop les liens hypertextes. Je leur préfère plutot le double click dans une cellule qui vous redirige vers l'endroit où vous voulez aller. Mais comme vous le demandez, on peut faire la création et l'ajout de l'hyperlien via une seule macro.
Sub Generer_fiches()
Dim cell As Range
Dim i As Byte
Dim existe As Boolean
With Sheets("Liste")
For Each cell In .Range("A2:A" & .Range("A" & Rows.Count).End(xlUp).Row)
'controle si la feuille existe
For i = 1 To Sheets.Count
If Sheets(i).Name = cell.Value Then existe = 1: Exit For
Next i
'si feuille n'existe pas on ajoute
If existe = 0 Then
Sheets("Fiche").Copy after:=Sheets(Sheets.Count)
Set feuille = ActiveSheet
feuille.Name = cell.Value
feuille.Range("D1").Value = cell.Value
feuille.Range("D2").Value = cell.Offset(0, 1).Value
feuille.Range("D3").Value = cell.Offset(0, 2).Value
feuille.Range("D4").Value = cell.Offset(0, 3).Value
feuille.Range("D5").Value = cell.Offset(0, 4).Value
feuille.Range("D6").Value = cell.Offset(0, 5).Value
feuille.Range("D7").Value = cell.Offset(0, 6).Value
.Hyperlinks.Add Anchor:=Sheets("Liste").Cells(cell.Row, 1), Address:="", SubAddress:=ActiveSheet.Name & "!A1", TextToDisplay:=cell.Value
End If
existe = 0
Next cell
End With
End SubCordialement
Bonjour !
Désolé pour le délais de réponse, le week-end est passé par la.
Ça fonctionne parfaitement, je ne pouvais pas rêver mieux, merci beaucoup.
Concernant les liens hypertextes, je trouve ça plus intuitif, à tort peut-être, et j'avoue ne jamais travailler avec des cellules qui redirigent, je devrais peut-être essayer !
Merci et bonne continuation !