Merci, j'ai fais la modif.
Par contre, j'ai 2 autres problèmes :
le 1er est que lors du code
Private Sub UserForm_Initialize()
'
Dim X%, iNb%, sCol$
'
'Récupération des Données
ComboBox1.RowSource = "Menu!A2:A3"
ComboBox2.RowSource = "Menu!B2:B3"
'
With Worksheets("Enfant")
For X = 3 To 42
sCol = Split(.Columns(X + 20).Address(ColumnAbsolute:=False), ":")(1)
iNb = WorksheetFunction.CountIf(.Range(sCol & "3:" & sCol & .Range(sCol & .Rows.Count).End(xlUp).Row), "X")
Me.Controls("CheckBox" & X).Enabled = IIf(iNb >= .Range(sCol & 3).Value, False, True)
Me.Controls("CheckBox" & X).Value = False
Me.Controls("lNb" & X).Caption = CStr(.Range(sCol & 3).Value - iNb)
Next
End With
'
End Sub
Si je met For X = 3 To 42 le formulaire s'ouvre, mais si j'écris For X = 3 To 43, le formulaire ne s'ouvre pas (et il y en a 110)
Le second problème concerne le code pour additionner les différentes sommes des activités
Private Sub TextBox19_change()
Dim X As Integer
Dim M As Double
For X = 3 To 110
If Controls("CheckBox" & X).Value = True Then M = Worksheets("Enfant").Cells(4, 20 + X)
Next X
Me.TextBox20.Text = Format(Val(TextBox19.Text) * M, "0.00")
End Sub