Bonjour le Forum,
J'ai une fois de plus besoin de vous, et j'espère vous expliquer correctement mon problème, j'avoue ce n'est pas évidant ...
Je voudrais pouvoir, via un UserForm puis deux ComboBox, faire une recherche des noms de feuilles qui se trouvent dans mon classeur et y accéder.
Chaque feuilles à comme format de nom "Niveau X Séance Y" (X correspond au numéro des niveaux et Y correspond au numéro des séances.)
J'aimerais pouvoir lister dans la ComboBox1 "Niveau X" des feuilles, et dans la ComboBox2 "Séance X" des feuilles, sans avoir de doublons dans les ComboBox.
Dans l'exemple que je vous joins, j'ai pu via un bout de code faire 60%
Mais je n'arrive pas couper, comme je désir, le nom des feuilles et faire le trie puis l'affichage ....
Dans mon fichier d'exemple, mes feuilles qui servent de test sont cachées, mais via la ComboBox une fois sélectionnées le code VBA les rend accessibles.
Pourriez-vous s'il vous plait m'aider à faire ce tri dans mes deux ComboBox.
UserForm:
En vous remerciant,
Cordialement.
J'ai une fois de plus besoin de vous, et j'espère vous expliquer correctement mon problème, j'avoue ce n'est pas évidant ...
Je voudrais pouvoir, via un UserForm puis deux ComboBox, faire une recherche des noms de feuilles qui se trouvent dans mon classeur et y accéder.
Chaque feuilles à comme format de nom "Niveau X Séance Y" (X correspond au numéro des niveaux et Y correspond au numéro des séances.)
J'aimerais pouvoir lister dans la ComboBox1 "Niveau X" des feuilles, et dans la ComboBox2 "Séance X" des feuilles, sans avoir de doublons dans les ComboBox.
Dans l'exemple que je vous joins, j'ai pu via un bout de code faire 60%
Mais je n'arrive pas couper, comme je désir, le nom des feuilles et faire le trie puis l'affichage ....
Dans mon fichier d'exemple, mes feuilles qui servent de test sont cachées, mais via la ComboBox une fois sélectionnées le code VBA les rend accessibles.
Pourriez-vous s'il vous plait m'aider à faire ce tri dans mes deux ComboBox.
UserForm:
Code:
Private Sub UserForm_Initialize()
Dim i As Integer
For i = 2 To Sheets.Count
ComboBox1.AddItem Sheets(i).Name
Next
End Sub
Private Sub ComboBox1_Click()
Dim Sh As Worksheet
On Error Resume Next
Set Sh = Sheets(ComboBox1.Value)
If Err Then MsgBox "Feuille introuvable", 48: ComboBox1.DropDown: Exit Sub 'en cas d'entrée manuelle incorrecte
On Error GoTo 0
Sh.Visible = True 'en cas de feuille masquée
Sh.Activate
'--------------suite du code de validation
End Sub
Private Sub CommandButton1_Click()
Unload UserForm1
End Sub
Private Sub CommandButton2_Click()
Unload UserForm1
End Sub
En vous remerciant,
Cordialement.
Pièces jointes
Dernière édition: