Option Explicit
Sub Calculs()
Dim T(1 To 12), i
On Error Resume Next
For Each i In Array(1, 2, 3, 4, 7, 8)
T(i) = Replace(Me.Controls("textbox" & i), ".", Application.DecimalSeparator)
T(i) = Replace(T(i), ",", Application.DecimalSeparator)
T(i) = CDbl(T(i))
Next i
On Error GoTo 0
If TousNombres(T(2), T(3), T(4)) Then T(5) = CDbl(T(2) + T(3) + T(4)) Else T(5) = "~"
If TousNombres(T(1), T(5)) Then T(6) = (T(1) + T(5)) / 5# Else T(6) = "~"
If TousNombres(T(8)) Then T(9) = CDbl(T(8) * 3) Else T(9) = "~"
If TousNombres(T(7), T(9)) Then T(10) = CDbl((T(7) + T(9)) / 5#) Else T(10) = "~"
If TousNombres(T(6), T(10)) Then T(11) = CDbl(T(6) + T(10)) Else T(11) = "~"
If TousNombres(T(11)) Then T(12) = CDbl(T(11) / 2#) Else T(12) = "~"
For Each i In Array(5, 6, 9, 10, 11, 12)
Me.Controls("textbox" & i) = T(i)
Next i
End Sub
Function TousNombres(ParamArray Nombres()) As Boolean
Dim elem
TousNombres = True
For Each elem In Nombres()
TousNombres = TousNombres And IsNumeric(elem)
Next elem
End Function
Private Sub TextBox1_Change(): Calculs: End Sub
Private Sub TextBox2_Change(): Calculs: End Sub
Private Sub TextBox3_Change(): Calculs: End Sub
Private Sub TextBox4_Change(): Calculs: End Sub
Private Sub TextBox7_Change(): Calculs: End Sub
Private Sub TextBox8_Change(): Calculs: End Sub