Liste déroulante des onglets dans un userForm
Résolu
mouftie
-
mouftie -
mouftie -
Bonjour,
J'ai créer un userform menu, en VBA, qui permet :
de choisir une Date qui met à jour un modèle de saisie du mois choisit. Chaque nouveau mois crée un nouvel onglet
Je voudrais ajouter à mon UserForm une liste déroulante des onglets présents et donc que le choix dans la liste ouvre l'onglet correspondant.
Quelqu'un peut-il m'aider ? SVP
Merci
J'ai créer un userform menu, en VBA, qui permet :
de choisir une Date qui met à jour un modèle de saisie du mois choisit. Chaque nouveau mois crée un nouvel onglet
Je voudrais ajouter à mon UserForm une liste déroulante des onglets présents et donc que le choix dans la liste ouvre l'onglet correspondant.
Quelqu'un peut-il m'aider ? SVP
Merci
A voir également:
- Liste déroulante des onglets dans un userForm
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste code ascii - Guide
- Liste déroulante google sheet - Accueil - Guide bureautique
- Liste des appareils connectés - Guide
2 réponses
Bonjour,
Code :
Ajoute à la fin de chaque procédure qui modifie le nombre d'onglets :
Code :
Option Explicit
Private Sub UserForm_Initialize()
....
....
Call ComboBox1_Initialize
End Sub
Private Sub ComboBox1_Change()
ThisWorkbook.Worksheets(ComboBox1.Value).Activate
End Sub
Private Sub ComboBox1_Initialize()
Dim wsh As Worksheet
ComboBox1.Clear
For Each wsh In ThisWorkbook.Worksheets
ComboBox1.AddItem wsh.Name
Next wsh
End Sub
Ajoute à la fin de chaque procédure qui modifie le nombre d'onglets :
Call ComboBox1_Initialize
Bonjour Patrice,
Merci pour ta réponse, ce code permet effectivement d'avoir un menu déroulant des onglets existants.
Cependant la combobox ne se réinitialise pas si on ajoute ou supprime un conglet
Merci pour ta réponse, ce code permet effectivement d'avoir un menu déroulant des onglets existants.
Cependant la combobox ne se réinitialise pas si on ajoute ou supprime un conglet
Voici un code qui fonctionne aussi avec un formulaire non modal :
Dans le module UserForm1 :
Dans le module ThisWorkbook :
Pas besoin d'ajouter d'autre appel à l'initialisation du combobox1
Patrice
Dans le module UserForm1 :
Option Explicit
Dim SansEvénements As Boolean
Private Sub UserForm_Initialize()
Application.EnableEvents = True
Call ComboBox1_Initialize
End Sub
Private Sub ComboBox1_Change()
If SansEvénements Then Exit Sub
ThisWorkbook.Worksheets(ComboBox1.Value).Activate
End Sub
Public Sub ComboBox1_Initialize()
Dim wsh As Worksheet
SansEvénements = True
ComboBox1.Clear
For Each wsh In ThisWorkbook.Worksheets
ComboBox1.AddItem wsh.Name
Next wsh
ComboBox1.Value = ActiveSheet.Name
SansEvénements = False
End Sub
Dans le module ThisWorkbook :
Private Sub Workbook_SheetActivate(ByVal Sh As Object) Call UserForm1.ComboBox1_Initialize End Sub
Pas besoin d'ajouter d'autre appel à l'initialisation du combobox1
Patrice