XL 2019 Faire évoluer un navigation entre feuilles

  • Initiateur de la discussion Initiateur de la discussion AIXELS
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

AIXELS

XLDnaute Occasionnel
Bonjour à tous les Amis du Forum. 🙂
J'ai trouvé un navigateur entre feuilles assez pratique quand
a plusieurs dizaines de feuilles pour se rendre rapidement sur
la feuille de son choix. Il fonctionne très très bien.
Le code est très abouti et dépasse mes connaissances en VBA
Quelqu'un peut-il le faire évoluer pour :
  • Qu'il reste affiché lors de la navigation
  • Ne pas avoir à appuyer sur OK pour se rendre sur la feuille choisie
  • Et pouvoir le fermer quand on le désire.
Je vous joins le fichier, code diffusé par René Roy, mpfe

Merci pour votre aide.
Bien cordialement.
 

Pièces jointes

Bonjour,

Et la fonctionnalité d'origine ne suffit-elle pas ?
1667738536598.png
 
Bonjour

Ayant vainement attendu que Microsoft satisfasse un de mes désirs, j'ai dans le clic droit de n'importe quelle cellule l'affichage de la liste des onglets classée par ordre alpha et nom par ordre dans le classeur.
1 clic droit affiche le menu, 1 clic la liste, 1clic sélectionne et active l'onglet

Si cela intéresse, je donnerai le code du personnal.xlsb
 
Bonjour

Dans le module ThisWorkBook du classeur de macros personnel (ou un complément)

VB:
Private Sub Workbook_Open()
    With Application
       
        'Liste onglets en clic droit
        With .CommandBars("Cell").Controls.Add(msoControlButton)
            .Caption = "Liste onglets"
            .BeginGroup = True
            .OnAction = "ListOnglets" 'ListeOnglets en clic droit
        End With
       
    End With
End Sub

Dans un module standard
Code:
Public Longlet
Sub ListOnglets()
'Lister les onglets avec dictionnaire

ReDim Longlet(ActiveWorkbook.Worksheets.Count - 1)
For I = 0 To UBound(Longlet)
    Longlet(I) = ActiveWorkbook.Worksheets(I + 1).Name
Next I
Call Tri(Longlet, LBound(Longlet), UBound(Longlet)) ' voir module mod_tri
MesOnglets2 (Longlet)
End Sub
Sub Tri(a, gauc, droi)   ' Quick sort

 ref = a((gauc + droi) \ 2)
 g = gauc: d = droi
 Do
    Do While a(g) < ref: g = g + 1: Loop
    Do While ref < a(d): d = d - 1: Loop
    If g <= d Then
      temp = a(g): a(g) = a(d): a(d) = temp
      g = g + 1: d = d - 1
    End If
 Loop While g <= d
 If g < droi Then Call Tri(a, g, droi)
 If gauc < d Then Call Tri(a, gauc, d)
 
 End Sub

Sub MesOnglets2(Longlet)
    x = UBound(Longlet)
    With UMesOnglets
    .ListeO.List() = Longlet
    .Height = Application.Min(300, x * 13 + 40)
    .ListeO.Height = .Height - 22
    .Show
    End With
End Sub

UserForm à importer
 

Pièces jointes

Dernière édition:
Bonjour @chris et tous les amis du Forum.
Merci pour ton retour.
J'ai un message d'erreur qui s'affiche d'une part
et d'autre part, je ne m'attendais pas à un userform pour
afficher les onglets. Je pensais que ce serait une fonction
ou une macro dans l'esprit du fichier joint lors de mon premier envoi.
J'ai trouvé un navigateur entre feuilles assez pratique quand
a plusieurs dizaines de feuilles pour se rendre rapidement sur
la feuille de son choix. Il fonctionne très très bien.
Le code est très abouti et dépasse mes connaissances en VBA
Quelqu'un peut-il le faire évoluer pour :
  • Qu'il reste affiché lors de la navigation
  • Ne pas avoir à appuyer sur OK pour se rendre sur la feuille choisie
  • Et pouvoir le fermer quand on le désire.
Donc côté userform, j'ai abandonné cette solution.
Je reviens à ma première requête à savoir si quelqu'un
pouvait faire évoluer le 1er fichier joint.

Par avance, merci pour aide.
Bien cordialement.
 

Pièces jointes

Je reviens à ma première requête à savoir si quelqu'un
pouvait faire évoluer le 1er fichier joint.
Bonjour,

Le type même de la boîte de dialogue créée dans votre macro ne permet pas ce que vous demandez*.
Les feuilles xlDialogSheet étaient des feuilles de dialogue xl4 qui sont devenues obsolètes avec l'apparition des userform. D'ailleurs dans les nouvelles versions d'excel on ne peut plus en ajouter par l'interface.

La seule chose que vous pouvez faire pour qu'elle se ferme sur choix, c'est de double-cliquer sur une option.

*sauf peut-être à développer (et ce n'est pas certain) une usine à gaz d'api windows que vous maîtriseriez encore moins que le vba.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
13
Affichages
1 K
Réponses
31
Affichages
4 K
Retour