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...

lucarn

XLDnaute Occasionnel
Bonsoir
J'ai modifié les boutons s'effacent et de nouveau se créent lors d'un double clic
A+ François
Bonjour Fanfan et merci pour ton aide. Mais...
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 et bonne année
Autre proposition par combobox
Bonjour Jacky et merci. Mais...
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,

c'est sans doute joli patrick, mais avec + de 100 onglets pas sûr que l'écran suffise... ;-)
Ca le prend en compte ?
J'imagine plus une liste avec ascenseur.
eric
Bonjour Eriiic, et merci. Mais...
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.
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re,

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.

Ce qu'il serait bien:
  • que tu nous dises où se trouve dans tes feuilles la référence du formulaire (TruxMuche MachinChose)
  • que tu dises où se trouve dans tes feuilles le titre du formulaire
  • BREF que tu nous fournisses un petit fichier échantillon représentatif
  • Et que tu n'attends pas que les autres se fendent chacun de la réalisation d'un fichier test
C'est possible ? ;)
 
Dernière édition:

Dranreb

XLDnaute Barbatruc
Bonjour.
Dans le module de la feuille Menu :
VB:
Option Explicit
Private Sub Worksheet_Activate()
   Dim T(), L As Long, Wsh As Worksheet, RngMenu As Range
   On Error Resume Next
   Set RngMenu = Me.[Menu]: If Err Then Set RngMenu = Me.[B2:C300]
   On Error GoTo 0
   RngMenu.ClearContents
   ReDim T(1 To ThisWorkbook.Worksheets.Count - 1, 1 To 2)
   For L = 1 To UBound(T, 1)
      Set Wsh = ThisWorkbook.Worksheets(L + 1)
      T(L, 1) = Wsh.Name
      T(L, 2) = Wsh.[A1].Value
      Next L
   Set RngMenu = RngMenu.Resize(UBound(T, 1))
   RngMenu.Value = T
   Me.Names.Add "Menu", RngMenu
   End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   Set Target = Intersect(Me.[Menu], Target)
   If Target Is Nothing Then Exit Sub
   If Target.Rows.Count <> 1 Then Exit Sub
   ThisWorkbook.Worksheets(Intersect(Me.[Menu].Columns(1), Target.EntireRow).Value).Activate
   End Sub
 

lucarn

XLDnaute Occasionnel
1000 excuses pour le fichier que voici.
Je reformule ma demande qui est aussi dans l'onglet menu.

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.
 

Pièces jointes

  • MENU.xlsm
    8.8 KB · Affichages: 8

Dranreb

XLDnaute Barbatruc
Vous n'allez quand même pas garder une feuille pour chaque groupe de 5 lignes quand même ?
Dans ce cas on crée un tableau base de données à 5 colonnes avec la possibilité d'en mettre une ligne de 5 colonnes sous la forme de 5 lignes, toujours dans cette même feuille de sortie, en vue de l'imprimer par exemple, voire pour la saisie d'une nouvelle, d'ailleurs.
Je peux vous faire une macro dans ce sens, si vous voulez.
Elle serait même applicable immédiatement à n'importe quel classeur qui aurait ces deux feuilles munies de ces 2 tableaux, sans aucune modification de code, tout étant possiblement automatique à l'ajout d'une colonne dans le tableau base, ou d'une ligne dans la feuille fiche (sur confirmation quand même, en cas de suppression).
 
Dernière édition:

Jacky67

XLDnaute Barbatruc
Re….
S'il y a beaucoup de donnée à saisir sur les feuilles individuelles, il serait préférable de constituer une feuille modèle, sinon comme le dit Dranreb, les feuilles individuelles ne sont pas utiles et il faudrait répondre à sa proposition..
Une proposition en Pj

**Hello mapomme
***Code modifié, en cas de déplacement des feuilles individuelles
 

Pièces jointes

  • ParComboboxV2.xlsm
    25.7 KB · Affichages: 16
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re à tous, bonjour @Jacky67 :)

Sur ma lancée, une version avec les flèches de tri.

Quand on ajoute une feuille, si on y colle ou si on y saisit les cellules les cellules A1, A2, A3 avec respectivement les mots "Référent", "Titre" et "Date", alors on renomme la feuille (si ce n'est pas une feuille déjà nommée Fnn) avec le premier nom du type "Fnn" disponible (si on a F1 à F9 déjà existantes sauf la feuille F5, alors la nouvelle feuille sera renommée F5 et non F10).
 

Pièces jointes

  • lucarn- Fichier pas fourni- v2.xlsm
    32.4 KB · Affichages: 23
Dernière édition:

lucarn

XLDnaute Occasionnel
Vous n'allez quand même pas garder une feuille pour chaque groupe de 5 lignes quand même ?
Dans ce cas on crée un tableau base de données à 5 colonnes avec la possibilité d'en mettre une ligne de 5 colonnes sous la forme de 5 lignes, toujours dans cette même feuille de sortie, en vue de l'imprimer par exemple, voire pour la saisie d'une nouvelle, d'ailleurs.
Je peux vous faire une macro dans ce sens, si vous voulez.
Elle serait même applicable immédiatement à n'importe quel classeur qui aurait ces deux feuilles munies de ces 2 tableaux, sans aucune modification de code, tout étant possiblement automatique à l'ajout d'une colonne dans le tableau base, ou d'une ligne dans la feuille fiche (sur confirmation quand même, en cas de suppression).
Bonsoir Danreb,
J'ai mis un fichier pour l'exemple. Mon formulaire original rempli toute une page pour 99 données. Je ne l'ai pas fourni car il n'est pas anonyme
 

Discussions similaires

Réponses
2
Affichages
500

Statistiques des forums

Discussions
311 733
Messages
2 082 019
Membres
101 872
dernier inscrit
Colin T