Liste des onglets avec liens
Nous découvrons aujourd’hui un petit
utilitaire bien pratique proposé par Jeff Robson,
d’Access Analytics, et un peu modifié par mes soins.
Le but est de disposer dans un classeur d’une
liste des onglets du classeur, chaque nom d’onglet ayant un lien hypertexte
vous permettant d’y aller directement.
Commençons par ajouter un onglet baptisé « Plan » et entrons « Onglets du classeur » en A1. C’est
plus logique de placer cet onglet en tête du classeur, mais rien ne vous y oblige.
Faites un clic droit dans le nom de cet
onglet et activez la commande « Visualiser le code ». Il ne vous reste plus qu’à entrer le code
ci-dessous pour que tout soit prêt. Quittez alors VBA et, dans le classeur,
cliquez sur le nom d’un autre onglet, puis sur celui de l’onglet « Plan ».
Et le tour est joué !
Vous avez maintenant la liste des onglets
du classeur, avec des liens hypertexte…
3 Commentaire(s):
Merci, peut m'être bien pratique.
Cependant, petite précision, le nom de l'onglet ne doit pas comporter d'espace !
Tout au moins chez moi, ça ne fonctionne pas ! (remplacé l'espace par _)
By demoniak61, sur 9:50 AM
Bonjour
Private Sub Worksheet_Activate()
'Par Arnaud
Dim objfeuille As Worksheet
Columns(1).Delete
For Each objfeuille In Worksheets
If objfeuille.Name <> ActiveSheet.Name Then
Range("a" & objfeuille.Index + CInt(objfeuille.Index > Worksheets(ActiveSheet.Name).Index)) = objfeuille.Name
Range("a" & objfeuille.Index).Hyperlinks.Add Anchor:=Range("a" & objfeuille.Index + CInt(objfeuille.Index > Worksheets("Plan").Index)), Address:="", SubAddress:="'" & objfeuille.Name & "'" & "!A1", TextToDisplay:=objfeuille.Name
End If
Next
End Sub
Attention ! Dans subAddress:= lire Guillemet Apostrophe Guillemet (sinon problème avec les espaces dans les nom des feuilles)
By Unknown, sur 6:40 PM
Variante de la technique Arnaud Cottin :
Private Sub Worksheet_Activate()
Dim objfeuille As Worksheet
ActiveSheet.Cells.Clear
ActiveCell.Value = "Onglets"
For Each objfeuille In Worksheets
With ActiveCell.Offset(ActiveCell.CurrentRegion.Rows.Count, 0)
If objfeuille.Name <> ActiveSheet.Name Then
.Hyperlinks.Add Anchor:=.Cells(1), Address:="", SubAddress:="'" & objfeuille.Name & "'!A1", TextToDisplay:=objfeuille.Name
End If
End With
Next objfeuille
End Sub
Avantages :
- on peut choisir d'implanter les onglets n'importe où sur la feuille, il suffit de choisir la cellule active
- Il n'est pas nécessaire de valoriser la cellule, l'argument TextToDisplay de la méthode Add d'Hyperlinks fait ça très bien.
By cduigou, sur 5:49 PM
Enregistrer un commentaire
<< Accueil