Affichage onglets sur plusieurs lignes

Bonjour,

Je travaille avec un fichier qui a une 30aine d'onglets entre lesquels il faut naviguer fréquemment.

Tous les utilisateurs de ce fichiers souhaiteraient une disposition des onglets sur 2/3 lignes si possible, un peu sur le modèle en pièce jointe.

Est-ce possible selon vous?

Si oui, comment fait-on?

Merci d'avance pour vos réponses.

onglets 2 lignes

Bonjour

Une autre possibilité

liste des onglets

Salut,

J'avais eu une demande utilisateur concernant ce sujet....

On avait eu l'idée de créer une nouvelle feuille Sommaire et de coller le code suivant dans le code de la feuille:

Private Sub Worksheet_Activate()
For i = 1 To ActiveWorkbook.Sheets.Count
        Cells(i, 1) = ActiveWorkbook.Sheets(i).Name
Next
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    For i = 1 To ActiveWorkbook.Sheets.Count
        If ActiveWorkbook.Sheets(i).Name = Cells(Target.Row, Target.Column).Value Then
            ActiveWorkbook.Sheets(i).Activate
            Exit Sub
        End If
    Next
End Sub

Cela affiche les noms de onglet dans la feuille excel et en double cliquant dessus cela l'ouvre.

Pour le mettre en place :

Créer nouvelle feuille (onglet)

Faire ALT+F11

Sur la gauche double cliquer sur le nom de ce nouvel onglet

Copier coller le code ci dessus dans la partie de droite

Fermet l'editeur de Code VBA

Aller dans ce nouvel onglet.

Je ne sais pas si cela répond a ton besoin, dis nous....

++

damien

Banzai64 a écrit :

Bonjour

Une autre possibilité

Bonjour,

Oui je connais le clic droit en bas à gauche....

mais cela ne "suffit" pas à mes collègues qui sont parfois très exigeants......

merci en tout cas pour la réponse


Bigdams a écrit :

Salut,

J'avais eu une demande utilisateur concernant ce sujet....

On avait eu l'idée de créer une nouvelle feuille Sommaire et de coller le code suivant dans le code de la feuille:

Private Sub Worksheet_Activate()
For i = 1 To ActiveWorkbook.Sheets.Count
        Cells(i, 1) = ActiveWorkbook.Sheets(i).Name
Next
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    For i = 1 To ActiveWorkbook.Sheets.Count
        If ActiveWorkbook.Sheets(i).Name = Cells(Target.Row, Target.Column).Value Then
            ActiveWorkbook.Sheets(i).Activate
            Exit Sub
        End If
    Next
End Sub

Cela affiche les noms de onglet dans la feuille excel et en double cliquant dessus cela l'ouvre.

Pour le mettre en place :

Créer nouvelle feuille (onglet)

Faire ALT+F11

Sur la gauche double cliquer sur le nom de ce nouvel onglet

Copier coller le code ci dessus dans la partie de droite

Fermet l'editeur de Code VBA

Aller dans ce nouvel onglet.

Je ne sais pas si cela répond a ton besoin, dis nous....

++

damien

merci pour la réponse

mais première réaction : ouh la la, ça commence à être compliqué pour moi car je n'ai jamais fait de VBA de ma vie......

peux-tu m'en dire plus sur le code et les éventuelles adaptations à y faire?

sinon, ce que j'ai fait, j'ai créé une feuille sommaire sur laquelle j'ai reporté tous les noms de mes onglets, et pour chacun, j'ai fait un lien hypertexte qui me renvoie dessus

est-ce équivalent à ta solution?

merci d'avance

Salut,

Private Sub Worksheet_Activate()  'Des que l'on active (ouvre) l'onglet
'On va entrer le nom de chaque onglet dans la feuille
Range("A1", "B65536").Clear

For i = 1 To ActiveWorkbook.Sheets.Count '
        Cells(i, 1) = ActiveWorkbook.Sheets(i).Name
Next
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) 'si on double click sur une cellule
    For i = 1 To ActiveWorkbook.Sheets.Count
        If ActiveWorkbook.Sheets(i).Name = Cells(Target.Row, Target.Column).Value Then
            ActiveWorkbook.Sheets(i).Activate  'On ouvre l'onglet
            Exit Sub
        End If
    Next
End Sub

Le problème de reporter tout les noms onglets manuellement et de créer des liens hypertext c'est que cela va planter lors :

  • Changement nom onglet
  • Ajout onglet

La solution que je propose est selon moi plus dynamique, a chaque fois que l'on va ouvrir cette nouvelle feuille Sommaire, Excel va lister a nouveau les onglets.

Donc même si tu en rajoutes ou que tu en modifies la liste sera correcte.

Et pas besoin de définir des liens hypertexte.

Pas de customisation necessaire. Juste copier /coller du code comme décrit precedemment.

Cf fichier attaché en exemple.

845ongletsommaire.zip (7.20 Ko)

Bonjour,

Ton truc est vraiment super!!!

je le garde dans un petit coin de ma tête pour un autre fichier

Merci encore pour les réponses

Sinon pour contruire la liste avec des URL

Private Sub Worksheet_Activate()
For i = 1 To ActiveWorkbook.Sheets.Count
        Cells(i, 1) = ActiveWorkbook.Sheets(i).Name
        Range(Cells(i, 1).Address & ":" & Cells(i, 1).Address).Select
        ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:=Cells(i, 1).Value & "!A1", TextToDisplay:=Cells(i, 1).Value
Next
End Sub

Damien

Bigdams a écrit :

Salut,

J'avais eu une demande utilisateur concernant ce sujet....

On avait eu l'idée de créer une nouvelle feuille Sommaire et de coller le code suivant dans le code de la feuille:

Private Sub Worksheet_Activate()
For i = 1 To ActiveWorkbook.Sheets.Count
        Cells(i, 1) = ActiveWorkbook.Sheets(i).Name
Next
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    For i = 1 To ActiveWorkbook.Sheets.Count
        If ActiveWorkbook.Sheets(i).Name = Cells(Target.Row, Target.Column).Value Then
            ActiveWorkbook.Sheets(i).Activate
            Exit Sub
        End If
    Next
End Sub

Cela affiche les noms de onglet dans la feuille excel et en double cliquant dessus cela l'ouvre.

Pour le mettre en place :

Créer nouvelle feuille (onglet)

Faire ALT+F11

Sur la gauche double cliquer sur le nom de ce nouvel onglet

Copier coller le code ci dessus dans la partie de droite

Fermet l'editeur de Code VBA

Aller dans ce nouvel onglet.

Je ne sais pas si cela répond a ton besoin, dis nous....

++

damien

Merci pour ce code !

Est-il cependant possible de décaler d'une colonne et d'un ligne le départ du tableau du genre en B2 ?

J'ai essayé de regarder le code par moi-même mais je ne vois pas où il faut renseigner cela

Merci

Bigdams a écrit :

Salut,

J'avais eu une demande utilisateur concernant ce sujet....

On avait eu l'idée de créer une nouvelle feuille Sommaire et de coller le code suivant dans le code de la feuille:

Private Sub Worksheet_Activate()
For i = 1 To ActiveWorkbook.Sheets.Count
        Cells(i, 1) = ActiveWorkbook.Sheets(i).Name
Next
End Sub
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    For i = 1 To ActiveWorkbook.Sheets.Count
        If ActiveWorkbook.Sheets(i).Name = Cells(Target.Row, Target.Column).Value Then
            ActiveWorkbook.Sheets(i).Activate
            Exit Sub
        End If
    Next
End Sub

Cela affiche les noms de onglet dans la feuille excel et en double cliquant dessus cela l'ouvre.

Pour le mettre en place :

Créer nouvelle feuille (onglet)

Faire ALT+F11

Sur la gauche double cliquer sur le nom de ce nouvel onglet

Copier coller le code ci dessus dans la partie de droite

Fermet l'editeur de Code VBA

Aller dans ce nouvel onglet.

Je ne sais pas si cela répond a ton besoin, dis nous....

++

damien

J'aurai aussi aimé pourvoir avoir plusieurs ligne d'onglet mais apres moulte recherche je crois bien que s'est impossible.

ta formule me plait bien. mas j'ai 2 questions.

1) puis-re réorganier les noms de mes onglets dans ce nouvelles onglet "sommaire"(les placer dans plusieurs colonnes) . j'ai essayé

mais il se remet tjs dans sa forme initial ( juste une liste dans la colonne A)

2) Le probleme reste un peux le meme. il faut qd meme toujours aller recherche l'onglet "sommaire" pour cliquer sur l'onglet desiré. peut-on faire en sorte que dès que j'ouvre le fichier, se soit l'onglet "sommaire" qui s'affiche. et qd on est dans le ficher, comment avoir acces rapidement a cette onglet sans devoir naviguer dans tout les onglets?

d'avance, je vous remercie.

Hello,

A mon sens la méthode la plus simple pour avoir ce que tu veux est de créer des liens hypertextes.

Tu fait une page de sommaire avec un lien pour chaque page (un peu ce que fait la macro VBA)

Puis dans chaque page tu créé un lien hyperTexte qui permet de retourner dans la page sommaire

Rechercher des sujets similaires à "affichage onglets lignes"