Création d'un ruban spécifique de navigation VBA

Y compris Power BI, Power Query et toute autre question en lien avec Excel
s
stan2731
Jeune membre
Jeune membre
Messages : 19
Appréciations reçues : 2
Inscrit le : 23 novembre 2019
Version d'Excel : 2016

Message par stan2731 » 13 décembre 2019, 21:01

Bonjour à tous,

- Introduction au fichier : Mon fichier dispose d'un certains nombre d'onglets (environ une 50aine), que je peux regrouper (par exemple 3 onglets appartiennent au groupe 1, 4 onglets au groupe 2, 2 onglets au groupe 3 et etc)
Compte tenu du nombre de feuille, ce n'est pas très agréable de naviguer dans ce fichier excel ...

Alors, je me demandais si il était possible de créer dans la barre d'outil excel un ruban spécifique à mon fichier qui me permettrai de :

- avoir une "liste déroulante" qui serait nommé "Groupe 1" et qui me permettrait d'afficher la liste de ces 3 onglets et de cliquer sur celui que je souhaite pour aller dans cette feuille.

Je peux faire des macros facilement pour naviguer entre feuille avec l'enregistrement, mais alors pour avoir mon bouton et mes liens dans la barre, je ne trouve rien que j'arrive à faire marcher ....

Si quelqu'un sait faire ça ou me donner une ou deux direction je suis plus que preneur :)

Merci beaucoup
Avatar du membre
curulis57
Passionné d'Excel
Passionné d'Excel
Messages : 3'747
Appréciations reçues : 226
Inscrit le : 4 janvier 2016
Version d'Excel : 2016 FR / 2019 FR

Message par curulis57 » 14 décembre 2019, 05:37

Salut Stan,

dans le ruban, pas capable... :?
Voici une solution VBA pour laquelle tu devrais réserver un endroit fixe sur chaque feuille pour accéder à tes groupes.
Ici, c'est sur la ligne 1.
Premier jet à tester!
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
'
Dim tTab, iCol%, iSheet%, sCol$, sItem$
'
With Sh
    iCol = .Cells(1, Columns.Count).End(xlToLeft).Column
    sCol = Split(Columns(iCol).Address(ColumnAbsolute:=False), ":")(1)
    If Not Intersect(Target, .[A1]) Is Nothing Then
        .Cells.Validation.Delete
        Target.Validation.Add _
            Type:=xlValidateList, _
            Formula1:="Groupe 1,Groupe 2,Groupe 3"
    End If
    If Not Intersect(Target, .Range("B1:" & Chr(64 + iCol) & 1)) Is Nothing Then
        If Target <> "" Then
            sItem = .[A1]
            iSheet = Target.Value
            tTab = .Range("B1").Resize(1, iCol - 1).Value
            For Each sSh In ActiveWorkbook.Sheets
                sSh.Visible = True
            Next
            For x = 1 To Sheets.Count
                Sheets(x).Visible = IIf(x >= CInt(tTab(1, 1)) And x <= CInt(tTab(1, UBound(tTab, 2))), True, False)
            Next
            Sheets(iSheet).Activate
            Sheets(iSheet).[A1] = sItem
            Sheets(iSheet).[A1].Resize(1, .Cells(1, Columns.Count).End(xlToLeft).Column).Borders.LineStyle = xlContinuous
            Sheets(iSheet).[B2].Select
        End If
    End If
End With
'
End Sub
8-)
A+
Stan.xlsm
(39.04 Kio) Téléchargé 13 fois
1 membre du forum aime ce message.
Avatar du membre
galopin01
Passionné d'Excel
Passionné d'Excel
Messages : 6'398
Appréciations reçues : 163
Inscrit le : 18 septembre 2008
Version d'Excel : 2016
Téléchargements : Mes applications

Message par galopin01 » 14 décembre 2019, 07:24

bonjour,
Si le nombre de groupes est strictement limité et invariable il semble préférable de prévoir un liste par groupe :
Indiquer le nombre de groupe
Par contre si le nombre de groupe est susceptible de varier le préciser.
A+
Question portant sur VBA : Je ne répond pas si la question ne comporte pas le classeur KIVABIEN avec.
Avatar du membre
Steelson
Fanatique d'Excel
Fanatique d'Excel
Messages : 14'064
Appréciations reçues : 832
Inscrit le : 13 octobre 2014
Version d'Excel : 2013 FR
Téléchargements : Mes applications

Message par Steelson » 14 décembre 2019, 09:04

Bonjour stan2731

Intéressante la navigation @curulis57 : simple et efficace. Je retiens !
J'ai aussi ceci en stock (mais pas de regroupement) -ce n'est pas de moi- aménageable ...
navigation entre onglets.xlsm
(83.14 Kio) Téléchargé 19 fois

O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸ O.o°• ♪♪♫ °º¤ø,¸¸,ø¤º°`°º¤ø,¸
PI = 3.14159 26535 89793 23846 26433 83279 50288 41971 69399 37510 58209 74944 59230 78164 06286 20899 86280

( ͡• ͜ʖ ͡• )
s
stan2731
Jeune membre
Jeune membre
Messages : 19
Appréciations reçues : 2
Inscrit le : 23 novembre 2019
Version d'Excel : 2016

Message par stan2731 » 14 décembre 2019, 09:05

Bonjour,

Non le nombre de groupe n'est pas variable :)

Pour le moment le nombre de feuille est fixe (chaque feuille est affecté à un groupe et ca ne bougera pas).

Je vais regarder ca donc merci :)
s
stan2731
Jeune membre
Jeune membre
Messages : 19
Appréciations reçues : 2
Inscrit le : 23 novembre 2019
Version d'Excel : 2016

Message par stan2731 » 14 décembre 2019, 09:09

Ah Steelson je pense que ta macro me met sur une bonne voie,

Si je créé une macro par groupe qui m'affiche la liste de feuille du groupe dans ta liste, et que j'affecte cette macro dans mon ruban ca devrait marcher,

Je vais regarder si j'arrive à modifier un peu le code pour ca :)
Avatar du membre
galopin01
Passionné d'Excel
Passionné d'Excel
Messages : 6'398
Appréciations reçues : 163
Inscrit le : 18 septembre 2008
Version d'Excel : 2016
Téléchargements : Mes applications

Message par galopin01 » 14 décembre 2019, 11:04

galopin01 a écrit :
14 décembre 2019, 07:24
Indiquer le nombre de groupe
Question portant sur VBA : Je ne répond pas si la question ne comporte pas le classeur KIVABIEN avec.
s
stan2731
Jeune membre
Jeune membre
Messages : 19
Appréciations reçues : 2
Inscrit le : 23 novembre 2019
Version d'Excel : 2016

Message par stan2731 » 14 décembre 2019, 12:17

Ah oui pardon j'ai 13 groupes
Avatar du membre
galopin01
Passionné d'Excel
Passionné d'Excel
Messages : 6'398
Appréciations reçues : 163
Inscrit le : 18 septembre 2008
Version d'Excel : 2016
Téléchargements : Mes applications

Message par galopin01 » 15 décembre 2019, 11:48

Bonjour,

Bon finalement je me rend compte que je suis parti dans une mauvaise direction. :P

La programmation du ruban n'étant pas ce que je maîtrise le mieux... ::B. Je préfère passer la main.

A+
Question portant sur VBA : Je ne répond pas si la question ne comporte pas le classeur KIVABIEN avec.
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message