Monsieur Excel
Pour tout savoir faire sur Excel !

02 février 2016

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 Blogger 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 Blogger Arnaud Cottin, 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 Anonymous cduigou, sur 5:49 PM  

Enregistrer un commentaire

<< Accueil