Salut le forum,
petite erreur, à force de vouloir condenser, j'avais omis un petit détail concernant les < 100...
Target.Offset(0, 3) = IIf(iNb = CInt(Target) And iNb < 100, "Erreur", iNb)
Merci au camarade m'ayant mis la puce à l'oreille!
Private Sub Worksheet_Change(ByVal Target As Range)
'
Dim iNb%, iSplit%
'
Application.EnableEvents = False
If Not Intersect(Target, Range("A:A")) Is Nothing Then
iNb = CInt(Target)
For x = 1 To IIf(iNb < 100, 0, 2)
For y = 1 To 25
iSplit = IIf(iNb - (y * Choose(x, 1000, 500)) > 500, 2, IIf(iNb - (y * Choose(x, 1000, 500)) = 0, 0, 1))
If iSplit < 2 Then _
Target.Offset(0, x) = y - iSplit: _
iNb = iNb - ((y - iSplit) * Choose(x, 1000, 500)): _
Exit For
Next
Next
Target.Offset(0, 3) = IIf(iNb = CInt(Target) And iNb < 100, "Erreur", iNb)
End If
Application.EnableEvents = True
'
End Sub