Bonjour à tous

voila je vais essayé d'être le plus clair possible mais cela va être dur.

J'ai un fichier une sorte de matrice de formation.
J'utilise un userform1 qui me permet de rentrer un nouvel op puis j'utilise un autre userform2 qui me permet de saisir des données par rapport au op.
le souci que j'ai c'est lorsque je saisi un nouvel op il n'apparait pas automatiquement dans l'userform2 qui me permet de saisir les données.
je suis obligé d'ouvrir l'userform2 et de le fermer avec la croix en haut à droite.

il y a t il un moyen que pour suite à une saisie avec l'userform1 la liste avec de l'userform2 se met à jour

Merci de votre aide
A+

je vous met le code

code userform1


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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
Public trouvé As String
Public datum As New Collection
Private Sub CommandButton1_Click()    'pour ajouter un operateur
ActiveSheet.Unprotect "thibaut"       'déproteger
    Dim Lig As Long
 
    With Sheets("suivi OPL")
        Lig = .Range("b65536").End(xlUp).Row + 1 'jusqu'a la ligne 65536 et décale d'une ligne à chaque entrée
        .Cells(Lig, 1).Value = ComboBox2         'ligne 1 colonne 1 valeur du combobox 2
        .Cells(Lig, 2).Value = TextBox2          'ligne 1 colonne 2 valeur du textbox 2
        .Cells(Lig, 3).Value = ComboBox1         'ligne 1 colonne 3 valeur du combobox 1
        .Cells(Lig, 4).Value = TextBox5          'ligne 1 colonne 4 valeur du combobox 5
        .Cells(Lig, 5).Value = TextBox6          'ligne 1 colonne 5 valeur du combobox 6
 
 
    End With
ComboBox2 = ""              'vider le contenu
ComboBox1 = ""              'vider le contenu
TextBox2 = ""               'vider le contenu
TextBox5 = ""               'vider le contenu
TextBox6 = ""               'vider le contenu
UserForm1.Hide              'avec la touche valider fermer l'userform 1 ajouter un operateur
 
 
Dim ZoneàModifier As Range  'mise en couleur selon la couleur de l'équipe
Dim cellule As Range
 
Set ZoneàModifier = Range("A17:A500")                                           'pour la selection A17:A500
For Each cellule In ZoneàModifier                                               'pour les cellules dans la zone à modifier
Select Case cellule                                                             'selectionner les cellules
Case Is = ""                                                                    'si la case est vide
cellule.Interior.ColorIndex = 2                                                 'interieur couleur blanche
Case Is = "verte"                                                               'si la case contient verte
cellule.Interior.ColorIndex = 4                                                 'interieur couleur verte
Case Is = "rose"                                                                'si la case contient rose
cellule.Interior.ColorIndex = 7                                                 'interieur couleur rose
Case Is = "jaune"                                                               'si la case contient jaune
cellule.Interior.ColorIndex = 6                                                 'interieur couleur jaune
Case Is = "bleu"                                                                'si la case contient bleu
cellule.Interior.ColorIndex = 5                                                 'interieur couleur bleu
Case Is = "Orange"                                                              'si la case contient orange
cellule.Interior.ColorIndex = 46                                                'interieur couleur orange
End Select                                                                      'fin de selection
cellule.Offset(0, 1).Interior.ColorIndex = cellule.Interior.ColorIndex          'décaler de 0 cellule vert le bas et d'1 cellule vers la droite et interieur couleur selon la valeur
cellule.Offset(0, 2).Interior.ColorIndex = cellule.Interior.ColorIndex          'décaler de 0 cellule vert le bas et d'2 cellule vers la droite et interieur couleur selon la valeur
cellule.Offset(0, 3).Interior.ColorIndex = cellule.Interior.ColorIndex          'décaler de 0 cellule vert le bas et d'3 cellule vers la droite et interieur couleur selon la valeur
cellule.Offset(0, 4).Interior.ColorIndex = cellule.Interior.ColorIndex          'décaler de 0 cellule vert le bas et d'4 cellule vers la droite et interieur couleur selon la valeur
Next                                                                            'ensuite
ActiveSheet.Protect "thibaut"
 ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFiltering:=True
    ActiveSheet.EnableSelection = xlNoSelection
End Sub
Private Sub UserForm_Initialize() ' a ajouter sur la matrice finale avec la modif de l'userform et les champs en a9 etc
'deprotege la feuille
ActiveSheet.Unprotect "thibaut"
Dim Cell As Range
 'selectionner l'équipe
    For Each Cell In Range("A3:A7")
        If Cell <> "" Then ComboBox2.AddItem (Cell)
    Next
  'selectionner la fonction
    For Each Cell In Range("A8:A14")
        If Cell <> "" Then ComboBox1.AddItem (Cell)
    Next
 
    'Protege la feuille
    ActiveSheet.Protect "thibaut"
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFiltering:=True
    ActiveSheet.EnableSelection = xlNoSelection
End Sub
 
Private Sub CommandButton2_Click()    'modifie
    Dim Lig As Long
 
    If ListBox1.ListIndex = -1 Then Exit Sub
 
    Lig = ListBox1.ListIndex + 2
 
    With Sheets("Feuil1")
        .Cells(Lig, 1).Value = TextBox1
        .Cells(Lig, 2).Value = TextBox2
        .Cells(Lig, 3).Value = TextBox3
        .Cells(Lig, 4).Value = CDate(TextBox4)
        .Cells(Lig, 5).Value = CDbl(TextBox5)
        If Me.OptionButton1 Then .Cells(Lig, 6).Value = Me.OptionButton1.Caption
        If Me.OptionButton2 Then .Cells(Lig, 6).Value = Me.OptionButton2.Caption
        .Cells(Lig, 7).Value = ComboBox1.Value
        .Cells(Lig, 8).Value = TextBox7
    End With
 
End Sub
Private Sub OptionButton3_Click()
    If OptionButton3 = True Then
        Me.CommandButton1.Enabled = True
        Me.CommandButton2.Enabled = False
    End If
End Sub
Private Sub OptionButton4_Click()
    If OptionButton4 = True Then
        Me.CommandButton1.Enabled = False
        Me.CommandButton2.Enabled = True
 
    End If
End Sub
Private Sub CommandButton3_Click()
ComboBox2 = ""
ComboBox1 = ""
TextBox2 = ""
TextBox5 = ""
TextBox6 = ""
 
UserForm1.Hide
End Sub
Code userform2
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
Private Sub CommandButton1_Click()
UserForm2.Hide 'bouton fermer
     ComboBox1 = ""
     ComboBox2 = ""
 
End Sub
 
Private Sub CommandButton2_Click()
UserForm2.Hide 'bouton annuler
End Sub
Private Sub UserForm_Initialize()
 
ActiveSheet.Unprotect "thibaut" 'deprotege la feuille
Dim Cell As Range
    'selcetionner le range nom
    For Each Cell In Range("B17:B3173")
        If Cell <> "" Then ComboBox1.AddItem (Cell)
    Next
    'selectionner le rang OPL
    For Each Cell In Range("g15:HP15")
        If Cell <> "" Then ComboBox2.AddItem (Cell)
    Next
    'Protege la feuille
    ActiveSheet.Protect "thibaut"
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFiltering:=True
    ActiveSheet.EnableSelection = xlNoSelection
 
End Sub
 
Private Sub CommandButton6_Click()
Calendrier.Show
End Sub
Private Sub CommandButton3_Click()
      'deprotege la feuille
    ActiveSheet.Unprotect "thibaut"
Dim datevalidation As Date 'déclaration de la variable
Dim datedeploiement As Date 'déclaration de la variable
       With Calendrier
 
  If .Calendar1.Value = "" Then formé = Now() Else: formé = .Calendar1.Value
  nom = ComboBox1.Value
    Formation = ComboBox2.Value
    statut = OptionButton1.Value * 1
    If statut = 0 Or Formation = "" Or nom = "" Then
        Exit Sub
    Else
        'Range  se trouve une case au dessus de la premiere case du tableau
        Range("g17").Offset(Me.ComboBox1.ListIndex * 1 - (statut + 1), Me.ComboBox2.ListIndex) = _
        Choose(-statut, .Calendar1.Value)
    End If
 
    datedeploiement = Range("g17").Offset(Me.ComboBox1.ListIndex - Me.ComboBox1.ListIndex - 9, Me.ComboBox2.ListIndex).Value
    Select Case Range("g17").Offset(Me.ComboBox1.ListIndex * 1 - (statut + 1), Me.ComboBox2.ListIndex)
 
    Case Is = "" ' cas ou la case est vide
 
        Range("g17").Offset(Me.ComboBox1.ListIndex * 1 - (statut + 1), Me.ComboBox2.ListIndex).Interior.ColorIndex = 3
 
    Case Is <= datedeploiement 'cas ou la date de validation est inferieure ou égale à la date de déploiement
 
        Range("g17").Offset(Me.ComboBox1.ListIndex * 1 - (statut + 1), Me.ComboBox2.ListIndex).Interior.ColorIndex = 2
        Range("g17").Offset(Me.ComboBox1.ListIndex * 1 - (statut + 1), Me.ComboBox2.ListIndex).Font.ColorIndex = 4
 
    Case Is > datedeploiement 'cas ou la date de validation est superieure à la date de déploiement
 
        Range("g17").Offset(Me.ComboBox1.ListIndex * 1 - (statut + 1), Me.ComboBox2.ListIndex).Interior.ColorIndex = 2
        Range("g17").Offset(Me.ComboBox1.ListIndex * 1 - (statut + 1), Me.ComboBox2.ListIndex).Font.ColorIndex = 3
 
    End Select
 
    End With
     UserForm2.Hide
     ComboBox1 = ""
     ComboBox2 = ""
 
 
   'Protege la feuille
   ActiveSheet.Protect "thibaut"
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFiltering:=True
    ActiveSheet.EnableSelection = xlNoSelection
 
End Sub