Bonjour à tous,

a) A l’ouverture de mon fichier je sélectionne l’onglet du mois à ouvrir (Workbook)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Private Sub Workbook_Open()
'Application.DisplayFullScreen = True
ActiveWindow.WindowState = xlMaximized
mois = Format(Date, "mmmm")
Sheets(mois).Activate
End Sub
b) J’ai un UserForm1 que j’active sur demande (dans un sub FORMULAIRE)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Sub FORMULAIRE()
UserForm1.Show vbModeless
End Sub
c) J’ai mon code pour l’user forme

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Option Explicit  'Activation de la déclaration explicite des variables
Dim Ws As Worksheet
 
Private Sub UserForm_Initialize() 'à l'initialisation de l'userform
Dim J As Long 'déclare la variable
Dim I As Integer
Dim mois_recherche As String
Dim F As Worksheet
      For Each F In ThisWorkbook.Worksheets
            'Seulement les feuilles visibles
            If F.Visible = xlSheetVisible Then
                  'Sauf celle intitulée 'Menu'
                  If F.Name <> "GESTION CITERNES" And F.Name <> "BILAN BRUNO" Then
                        'Ajouter l'élément à la liste
                        ComboBox2.AddItem F.Name
                  End If
            End If
      Next F    
mois_recherche = ActiveSheet.Name
' Affecter une valeur à une variable (= fixer la valeur de la variable)
  Set Ws = Sheets(mois_recherche)  'Attention ce nom doit correspondre au nom de votre ONGLET
'On stock le nom de la feuille "JANVIER" dans une variable nommée WS
 With Me.ComboBox1 ' on range les nom dans combobox1
    For J = 3 To Ws.Range("A" & Rows.Count).End(xlUp).Row
      .AddItem Ws.Range("B" & J)
    Next J
  End With
  For I = 1 To 9 'on lance une boucle de valeur mini 1 et maxi 9
    Me.Controls("TextBox" & I).Visible = True 'affiche les données dans les textbox
Next I
End Sub
Private Sub ComboBox1_Click()
Dim Ligne As Long
Dim I As Integer
   If Me.ComboBox1.ListIndex = -1 Then Exit Sub
  Ligne = Me.ComboBox1.ListIndex + 3
  TextBox9.MultiLine = True
  For I = 1 To 9
    Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I) '+ 1)
  Next I
 End Sub
Private Sub ComboBox2_Click()
Dim Feuille As String
    Feuille = ComboBox2.Value
    Worksheets(Feuille).Select
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
Ce que je n’arrive pas à faire :
Lorsque je modifie combobox2 les onglets sont bien activés : OK

Lorsque je sélectionne un nom dans combobox1 les informations sont bien affiché dans mes textebo : OK , mais les infos présentent dans la combobox1 sont toujours ceux de l’onglet ouvert au départ.

Ce que je souhaiterai c’est que la liste des noms change en fonction du choix de combobox2

Ça marche bien si je ferme l’userforme et le ré-ouvre.

Comment faire ?

Merci de votre aide cordialement (débutant qui utilise les fonction trouvées sur internet)

Cordialement