Microsoft 365 Créer un menu d'onglets

lucarn

XLDnaute Occasionnel
Bonjour,
J'ai un fichier qui peut faire plus d'une centaine d'onglets.
Je donne donc un nom codé à chaque onglet de type F1, F2, etc.
Mais pas facile de se rappeler que F78 correspond à la fiche Machin chouette.
Je voudrais donc avoir un onglet Menu sur lequel est noté tous les F avec pour chacun, son objet : F78 Machin chouette
Et donc cliquer dessus pour que l'onglet s'ouvre.
Cela implique que j'écrive l'objet moi-même (à moins, que la macro puisse aller chercher l'objet dans une cellule).
 
Solution
Bonsoir @lucarn :), @Jacky67 ;), à tous :)

Jacky m'a donné aussi une amélioration et j'aurai voulu mixer vos 2 propositions.
Mais, apparemment, le copié / collé n'est pas la bonne méthode pour réaliser le mixte.
Du coup, me voilà bien embêté

Bon, une dernière version qui est la chimère improbable d'une choppe de bière et d'une pomme.

Un essai pour marier les versions de @Jacky67 et la mienne.

de @mapomme , on garde:
  • la présentation en tableau
  • les flèches de tri
  • la recherche par chaine de caractères
  • la possibilité de choisir comme nom pour une nouvelle feuille de type F999, le premier de la forme F999 disponible
de @Jacky67, on garde:
  • la présentation en...

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonjour à tous,

Un exemple dans le fichier pas fourni ;)

Les codes sont dans module1, dans le module de la feuille "Menu" et dans le module de ThisWorkbook.
Le menu s'actualise à l'ouverture du fichier et à chaque activation de la feuille 'Menu'.

edit: Bonsoir à toutes et tous, @Lolote83 :), @Dranreb et @fanfan38 :)
 

Pièces jointes

  • lucarn- Fichier pas fourni- v1.xlsm
    25.9 KB · Affichages: 41
Dernière édition:

Lolote83

XLDnaute Barbatruc
Bonsoir,
Fanfan, j'ai testé ta version. Un petit HIC !!!!
A chaque clic sur un bouton, l'intégralité des boutons est reconstitué et du coup on se retrouve avec une multitude de boutons.
Voir copie ci-dessous
1579024996818.png

Sinon, l'idée est pas mal !!!!
@+ Lolote83
 

patricktoulon

XLDnaute Barbatruc
et
bonsoir
et j'en rajoute une !! ;)
tu met ca dans le sheets acceuil (celui ou doit être ton menu )
exemple la cellule C6 devient un bouton
VB:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = "$C$6" Then MenuX: Cancel = True Else Cancel = False
End Sub

et dans un module standard tu met

VB:
Function MenuX()
    Dim barre As CommandBar, i&
    On Error GoTo suite
    delmenu
suite:

    Set barre = CommandBars.Add("MenuSheetx", msoBarPopup, False, True)
    For i = 1 To Sheets.Count
        With barre.Controls.Add(msoControlButton, 1, , , True)
            .Caption = Sheets(i).Name & ":" & Sheets(i).CodeName
            .Tag = i
            .FaceId = 358
            .OnAction = "openSheet"

        End With


    Next
barre.ShowPopup
  
End Function
Sub openSheet()
Sheets(Val(CommandBars.ActionControl.Tag)).Activate
End Sub
Function delmenu()
    On Error Resume Next
    CommandBars("MenuSheetx").Delete
End Function

prévoir un delmenu dans le beforeclose du classeur
VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
delmenu
End Sub
rien n'existe a l'ouverture ,rien n'existe a la fermeture ;)
demo3.gif
 

patricktoulon

XLDnaute Barbatruc
Bonjour eriiiic
et bien tu sequence en sub menu ;)
VB:
Function MenuX()
    Dim barre As CommandBar, i&,cpop ac object
    On Error GoTo suite
    delmenu
suite:

    Set barre = CommandBars.Add("MenuSheetx", msoBarPopup, False, True)
    Set cpop = barre.Controls.Add(msoControlPopup, 1, , , True)
    cpop.Caption = "de 1 a 10"
    For i = 1 To Sheets.Count
               With cpop.Controls.Add(msoControlButton, 1, , , True)
                .Caption = Sheets(i).Name & ":" & Sheets(i).CodeName
                .Tag = i
                .FaceId = 358
                .OnAction = "openSheet"
              End With
         If i Mod 10 = 0 Then
            Set cpop = barre.Controls.Add(msoControlPopup, 1, , , True)
            cpop.Caption = "de " & i + 1 & "  a " & i + 10
        End If
    Next
    barre.ShowPopup
End Function

demo3.gif


on peut meme y ajouter un textbox pour taper le nom du sheets recherché si tu veux ;)
 

lucarn

XLDnaute Occasionnel
Bonjour tout le monde,

Bon, je vois que ma question a fait fumer des cerveaux et je vous en remercie.
Je vais essayer de faire fonctionner tout cela, mais je ne vous cache pas que je ne comprends pas grand-chose à ce que vous dites.
En tous cas, merci beaucoup de votre aide. Et puis, ça m'a fait rire de voir le surenchérissement.
Bonne journée
 

lucarn

XLDnaute Occasionnel
Je reformule ma demande car je me rends compte que j'avais oublié un détail majeur.
Cette fois, je pense que ça va être compliqué....

En fait, je voudrais fournir le fichier à plusieurs personnes et que les choses se fassent automatiquement.
Ce sont des gens encore plus nuls que moi en matière d'Excel et de macros etc. etc.
Je ne peux donc pas compter sur eux pour qu'ils fassent des liens hypertextes ou bien pire que cela :)
Il faut que je leur livre un fichier clé en main qui fonctionne tout seul.

Voici comment ça marche.
J'ai créé un formulaire type que chacun copie pour le placer dans un onglet.
Donc, je voudrais que lorsqu'ils ouvrent un nouvel onglet, celui-ci prenne automatiquement le nom du type F12 étant donné qu'ils sont tous F1, F2, F3 etc.
Et que dans le menu ce nouvel onglet s'inscrive automatiquement avec un lien permettant d'ouvrir l'onglet.
De plus, dans le formulaire, une cellule sert à inscrire un titre. Il faudrait donc que lorsque le titre est écrit, il se reporte dans le menu en face du code de l'onglet.
 

lucarn

XLDnaute Occasionnel
Bonjour à tous,

Un exemple dans le fichier pas fourni ;)

Les codes sont dans module1, dans le module de la feuille "Menu" et dans le module de ThisWorkbook.
Le menu s'actualise à l'ouverture du fichier et à chaque activation de la feuille 'Menu'.

edit: Bonsoir à toutes et tous, @Lolote83 :), @Dranreb et @fanfan38 :)
Bonjour Mapomme,
Je te remercie et 1000 excuses pour le fichier non fourni.

Je reformule ma demande car je me rends compte que j'avais oublié un détail majeur.
Cette fois, je pense que ça va être compliqué....

En fait, je voudrais fournir le fichier à plusieurs personnes et que les choses se fassent automatiquement.
Ce sont des gens encore plus nuls que moi en matière d'Excel et de macros etc. etc.
Je ne peux donc pas compter sur eux pour qu'ils fassent des liens hypertextes ou bien pire que cela :)
Il faut que je leur livre un fichier clé en main qui fonctionne tout seul.

Voici comment ça marche.
J'ai créé un formulaire type que chacun copie pour le placer dans un onglet.
Donc, je voudrais que lorsqu'ils ouvrent un nouvel onglet, celui-ci prenne automatiquement le nom du type F12 étant donné qu'ils sont tous F1, F2, F3 etc.
Et que dans le menu ce nouvel onglet s'inscrive automatiquement avec un lien permettant d'ouvrir l'onglet.
De plus, dans le formulaire, une cellule sert à inscrire un titre. Il faudrait donc que lorsque le titre est écrit, il se reporte dans le menu en face du code de l'onglet.
.
 

Discussions similaires

Réponses
2
Affichages
500