1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| Private Sub ComboBox1_Change()
For i = 4 To 6: Me.Controls("TextBox" & i) = "": Next
End Sub
'
'
Private Sub CommandButton4_Click()
Select Case ComboBox1.Value
Case "Triangle", "Lozange", "Rectangle"
' si on veut toutes les decimales on ne met pas l'argument nbdecimale
'
'If TextBox4.Value = "" Or TextBox5.Value = "" Then MsgBox "Saisir une valeur" Else TextBox6.Value = Calcule(ComboBox1.Value, TextBox4.Value, TextBox5.Value)
'
'si on veut maitriser le nombre de decimales exemple ci dessous avec 2 decimales
'
If TextBox4.Value = "" Or TextBox5.Value = "" Then MsgBox "Saisir une valeur" Else TextBox6.Value = Calcule(ComboBox1.Value, TextBox4.Value, TextBox5.Value, nbdecimale:=2)
Case "Cercle", "Carré"
' si on veut toutes les decimales on ne met pas l'argument nbdecimale
'
'If TextBox4.Value = "" Then MsgBox "Saisir une valeur" Else TextBox6.Value = Calcule(ComboBox1.Value, TextBox4.Value)
'
'si on veut maitriser le nombre de decimale exemple avec 2 decimales
'
If TextBox4.Value = "" Then MsgBox "Saisir une valeur" Else TextBox6.Value = Calcule(ComboBox1.Value, TextBox4.Value, nbdecimale:=2)
'
End Select
End Sub
'
'
Private Function Calcule(C1 As String, T4 As Variant, Optional T5 As Variant = "0", Optional nbdecimale As Long = 10) As Double
T4 = Val(Replace(T4, ",", ".")): T5 = Val(Replace(T5, ",", "."))
Pi = WorksheetFunction.Pi
Select Case C1
Case "Cercle", "Carré": Calcule = (T4 * T4) * IIf(C1 = "Cercle", Pi, 1)
Case "Triangle", "Lozange", "Rectangle": Calcule = (T4 * T5) / IIf(C1 <> "Rectangle", 2, 1)
End Select
Calcule = Round(Calcule, nbdecimale)
End Function
'
'
Private Sub UserForm_Activate()
ComboBox1.List = Array("Cercle", "Carré", "Triangle", "Lozange", "Rectangle")
End Sub |
Partager