Suite,
Voici la macro d'initialisation par rapport au fichier posté.
Private Sub Userform_Initialize()
TextBox1.Value = Sheets("Feuil1").Range("A6").Text 'nom de l'objet
TextBox2.Value = DateValue(Date) 'date du jour
TextBox3.Value = DateAdd("Y", 365, CDate(Me.TextBox2.Text))
'Me.TextBox3.Value = Sheets("Feuil1").Range("B6").Text 'nom de l'objet
Call Colori
End Sub
Et la macro Colori
Private Sub Colori()
'Marron = 16512 ,Bleu = 16711680, Jaune = 65535, Rouge = 255, Noir = 0, Vert = 32768
'Boucle sur les 2 contrôles de date. Controls(C).Value
For C = 1 To 2
If C = 1 Then An = Year(TextBox2.Value) Else An = CInt(Right(TextBox3, 4))
'Position = 1 + Reliquat par 6
Pos = 1 + (An - 2010) Mod 6
'Sélection de la couleur selon la position
Controls(C).BackColor = Choose(Pos, 16512, 16711680, 65535, 255, 0, 32768)
Next C
End Sub
Tu dois cibler un ou deux mauvais contrôles. Si tu as le message d'erreur indiqué.
Vérifie les index de tes contrôles Date. Par la propriété TabIndex de ces contrôles.
Pour le textbox2 sn index est 1 et pour le textbox3 c'est l'index 2 dans le fichier posté
Regarde pour tes texbox3 et textbox4. Et modifie la macro en conséquence.