Menu déroulant qui affiche/masque un onglet

Bonjour à tous :)

J’ai besoin de votre aide pour la création d’un fichier Excel :)

Je souhaiterai avoir sur mon tableur le premier onglet avec un menu déroulant (affichant 1,2,3,4) et que lorsque je sélectionne par exemple « 2 », l’onglet nommé « 2 » s’affiche et que l’autre qui était ouvert ,par exemple le « 4 », se masque automatiquement.

Je souhaiterai également avoir un bouton qui ajoute un nouvel onglet a chaque fois à la suite des chiffres du menu déroulant et par la même occasion que le nom de cet onglet soit incorporé dans le menu déroulant pour pouvoir être sélectionné ensuite.

J’ai eu plusieurs pistes mais aucunes n’étaient concluantes…

En espérant que vous compreniez mon exemple

Je vous remercie

Bonjour,

En lisant ta demande, je me suis dis du VBA. Mais sachant pas bien codé VBA je ne suis pas d'une grande aide. Mais avec une feuille maitresse avec la liste en A1. En A2:

=SI(A1=1;1;SI(A1=2;2;SI(A1=3;3;SI(A1=4;4))))

VBA;

Sub affiche()
   Dim feuille As Worksheet
   Set feuille = Sheets("Feuille")
   Dim c As Byte
   c = Range("A2").Value
   If c = 1 Then
     Woksheets("1").Visible = True
     Woksheets("2").Visible = False
     Woksheets("3").Visible = False
     Woksheets("4").Visible = False
   Else
     If c = 2 Then
       Woksheets("1").Visible = False
       Woksheets("2").Visible = True
       Woksheets("3").Visible = False
       Woksheets("4").Visible = False
     Else
       If c = 3 Then
         Woksheets("1").Visible = False
         Woksheets("2").Visible = False
         Woksheets("3").Visible = True
         Woksheets("4").Visible = False
       Else
         If c = 4 Then
           Woksheets("1").Visible = False
           Woksheets("2").Visible = False
           Woksheets("3").Visible = False
           Woksheets("4").Visible = True
        End If
       End If
     End If
   End If
End Sub

Bonne Journée

Je te remercie ImoKa c’est déjà un bon début :)

Ça fonctionne nickel et je vais pouvoir déjà avancer un peu avec ça :) par contre si j’ajoute un bouton qui me crée automatiquement un nouvel onglet a la suite des autres (donc là ce sera 5) incrémenter la liste automatiquement se sera simple mais pour le code je suis obligé de le changer à chaque fois car parfois j’aurai un fichier qui aura besoin d’aller que jusqu’à 4 mais parfois jusqu’à 48.

C’est quand même une grande avancée pour moi et je vais créer un fichier allant jusqu’à 48 en attendant de trouver une solution plus simple 😁

Bonjour,

Un nouveau code pour nombre de feuille illimité arrive.

Voila le code, décidément aujourd'hui j'apprends le VBA et déjà un code.

Sub affiche()
   Dim feuille As Worksheet
   Set feuille = Sheets("Feuille")
   Dim c As Byte
   c = Range("A2").Value
   Dim t As String
   t = "Feuille"
   Dim nom As String
   nom = t+c
   For Each feuille In Sheets
      If feuille.Name <> nom Then feuille.Visible = xlSheetVeryHidden
   Next Feuille
End Sub

Sub newFeuille()
   Dim feuille As Worksheet
   Set feuille = Sheets("Feuille")
   Dim c As Byte
   c = Range("A3").Value
   Dim nom As String
   nom = "Feuille"+c+1
   Sheets.Add
   Activesheet.name=nom
End Sub

Avec en A3 dans la feuille maitresse

=FEUILLES()

Dis-moi si tu veux une méthode avec un nom personnalisé pour chaque feuille.

PS: newFeuille est la fonction pour le bouton.

Bonsoir…

Une nouvel exemple pour créer des onglets, les nommer et mettre à jour leur liste qui permet de s’envoler de l’un à l’autre.

Merci de vous penchez sur mon problème cela fait plaisir de se sentir aidé :)

Quand j’ai vu ton code ImoKa je me suis dit c’est bon ça va marcher (j’arrive toujours à comprendre les VBA mais jamais à les écrire) mais malheureusement quand je la lance cela m’écrit « incompatibilité de type » et je n’arrive pas à voir d’où cela provient :/

Ordonc bonjour :) j’attend de rentrer chez moi pour voir ton fichier car au boulot lorsque l’on télécharge un Excel avec macro, par sécurité les macros sont effacés…

Bonjour,

A m...., j’ai pas excel en gros je peux pas testé.

Mais je pense avoir trouvé l’erreur.

Sub affiche()
   Dim feuille As Worksheet
   Set feuille = Sheets("Feuille")
   Dim c As Byte
   c = Range("A2").Value
   Dim t As String
   t = "Feuille"
   Dim nom As String
   nom = t+c
   For Each feuille In Sheets
      If feuille.Name <> nom Then feuille.Visible = xlSheetVeryHidden
   Next Feuille
End Sub

J’ai enlever newFeuille parce que sa bugé sur le type. J’avais tenté de mettre un nombre avec du texte comme en javascript.

J’ai une erreur de compilation : Next sans For

Je me suis également posé la question ne faut-il pas un end if? Quand j’ajoute end if j’ai « incompatibilité de type » en erreur :/

J’ai rebossé dessus

Sub affiche()
   Dim feuille As Worksheet
   Set feuille = Sheets("Feuille")
   Dim c As Byte
   c = Range("A2").Value
   Dim d As Byte
   d = Range("A3").Value
   Dim t()
   t(0) = "Feuille"
   t(1) = c
   Dim nom As String
   nom = Join(t,"")
   Dim i As Integer
   For i = 0 To d
       If woksheets(i) <> feuille Then
          Woksheets(i).Visible = True
       Else
           If woksheets(i) = nom Then
              Woksheets(i).Visible = True
           Else
              Woksheets(i).Visible = False
           End If
       End If
   Next
End Sub

Avec en A3

=FEUILLES()

Merci Imoka d'avoir réfléchi sur mon projet mais malheureusement cela ne fonctionne pas.

Par contre Ordonc ton fichier est nickel c'est ce que je voulais :D

J'en demande peut être un peu trop mais est-il possible de faire exactement pareil mais avec 6 onglets à la fois? Genre quand je clique sur 1 j'ai les onglets 1A, 1B, 1C, 1D, 1E et 1F qui apparaissent, pareil avec le 2 les onglets 2A, 2B, 2C, 2D, 2E et 2F apparaissent et ainsi de suite... Et si possible quand je double clique pour ajouter non plus 1 mais 6 onglets du coup, que les onglets créés reprennent les valeurs des onglets précédents, du genre 3A reprenne les données de 2A, 3B celle de 2B, 3C celle de 2C et ainsi de suite

Après si c'est pas possible y a pas de soucis c'est que du bonus que je demande, un grand merci déjà pour ce que tu m'a fourni (j'ai essayé de comprendre le code mais par contre là je suis à l'ouest, je comprend rien mdr)

Rechercher des sujets similaires à "menu deroulant qui affiche masque onglet"