Private Sub UserForm_Initialize()
'********************************************************************************************************
'propriétés de la ComboBox3 modifiées :
'ColumnCount = 2 ==> (2 colonnes : Colonne 0 et Colonne 1)
'ColumnWidht = ;0 pt ==> (la largeur de la seconde colonne vaut 0 )
'cela signifie que l'on peut stocker deux données dans la ComboBox3 et que la seconde données est cachée
'********************************************************************************************************
Set O = Sheets("Suivi des projets") 'définit l'onglet O
ComboBox1.List = Array("Investigation", "En cours", "Clôturer")
'Boucle de 3 à la première cellule VIDE de la colonne C
For n = 3 To O.Cells(Application.Rows.Count, 4).End(xlUp).Row
If O.Cells(n, 4).Value <> "" Then 'condition : si la celule n'est pas vide
With Me.ComboBox3 'prend en compte la ComboBox3
.AddItem O.Cells(n, 4).Value 'ajoute la valeur de la cellule dans la colonne 0 de la ComboBox3
.Column(1, .ListCount - 1) = n 'récupère le numéro de ligne dans la colonne 1 de la ComboBox3
End With 'fin de la prise en compte de la ComboBox3
End If 'fin de la condition
Next n 'prochaine cellule de la boucle
End Sub
Private Sub ComboBox3_Change() 'au chagement dans la ComboBox3
With Me.ComboBox3 'prend en compte la ComboBox3
LI = CInt(.Column(1, .ListIndex)) 'définit la ligne Li
End With 'fin de la prise en compte de la ComboBox3
LI = O.Cells(LI, 4).End(xlDown).Row 'redéfinit la ligne LI en le sous projet suivant
If LI = Application.Rows.Count Then 'condition : si LI est la dernière ligne de l'onglet
LI = O.Cells(Application.Rows.Count, 2).End(xlUp).Row + 1 'redéfinit LI comme la ligne de la première cellule vide de la colonne B
TEST = True 'définit la variable TEST
End If 'fin de la condition
End Sub
Private Sub CommandButton1_Click() 'bouton "Validation"
'si test est faux insère une ligne vide au niveau de LI, sinon redéfinit test à "FAUX"
If TEST = False Then Rows(LI).Insert Shift:=xlDown Else TEST = False
If TextBox5 = "" Or TextBox2 = "" Then
MsgBox ("Vous devez remplir les champs")
Exit Sub
End If
Cells(LI, 2) = ComboBox1
Cells(LI, 5) = TextBox1
Cells(LI, 5).Font.ColorIndex = 10
Cells(LI, 6) = TextBox6
Cells(LI, 7) = TextBox8
Cells(LI, 10) = TextBox7
Cells(LI, 23) = DTPicker4
Cells(LI, 23) = DTPicker3