Private Sub txtB_Change()
'la variable "tous" contient les object textbox de leur frame respective
Dim critere As Boolean, V, q&
With mamanFram
Select Case .Name
Case "FrCdt":
V = Array(.PrixCdt.Value, .TxtSoie.Value, .TxtCordelette.Value, .TxtEtiquetteCarton.Value, .CoeffCdt.Value)
For q = 0 To UBound(V)
If V(q) = "" Then V(q) = 0 Else critere = True
Next
If critere Then .PRCdt = Format((CDbl(V(0)) + CDbl(V(1)) + CDbl(V(2)) + CDbl(V(3))) * CDbl(V(4)), "#0.00 €"): GotoCalcul Else .PRCdt = ""
Case "FrPlante":
V = Array(.PrixAchatPlante.Value, .CoeffPlante.Value, .PrixAchatPlante.Value, .TransPlante.Value)
critere = V(0) <> "" And V(1) <> "" And V(2) <> "" And V(3) <> ""
If critere Then .PRPlante.Value = Format((CDbl(V(0)) * CDbl(V(1))) + (CDbl(V(2)) * CDbl(V(3))), "#0.00 €"): GotoCalcul Else .PRPlante.Value = ""
Case "FrPot":
V = Array(.PrixPot.Value, .CoeffPot.Value)
critere = V(0) <> "" And V(1) <> ""
If critere Then .PRPot.Value = Format((CDbl(V(0)) * CDbl(V(1))), "#0.00 €"): GotoCalcul Else .PRPot = ""
Case "FrPlaque":
V = Array(.PrixPlaque.Value, .CoeffPlaque.Value, .NbPlantePlaque.Value)
critere = V(0) <> "" And V(1) <> "" And V(2) <> ""
If critere Then .PRPlaque = Format((CDbl(V(0)) * CDbl(V(1))) / CDbl(V(2)), "#0.00 €"): GotoCalcul Else .PRPlaque = ""
Case "FrChromo":
If .PrixChromo.Value <> "" Then .PRChromo.Value = Format(.PrixChromo.Value, "#0.00 €"): GotoCalcul Else .PrixChromo = ""
Case "FrEtiquette":
.PREtiquette.Value = Format(.PrixEtiquette.Value, "#0.00 €"): GotoCalcul
Case "FrEntourage":
If .PrixEntourage.Value <> "" Then .PREntourage.Value = Format(.PrixEntourage.Value, "#0.00 €"): GotoCalcul Else .PrixEntourage
Case "FrEmballage":
V = Array(.Mousseline.Value, .Kraft.Value, .DsSmith.Value)
For q = 0 To UBound(V)
If V(q) = "" Then V(q) = 0 Else critere = True
Next
If critere Then .PREmballage = Format((CDbl(V(0)) + CDbl(V(1)) + CDbl(V(2))), "#0.00 €"): GotoCalcul Else .PREmballage = ""
Case "FrAccess":
V = Array(.TxtPrixAccessoire.Value, .TxtCoeffAccess.Value)
critere = V(0) <> "" And V(1) <> ""
If critere Then .PRAccess.Value = Format((CDbl(V(0)) * CDbl(V(1))), "#0.00 €"): GotoCalcul Else .PRAccess.Value = ""
Case "FrMO":
V = Array(.TxtCoutHrMO.Value, .TxtTempsMO.Value)
critere = V(0) <> "" And V(1) <> ""
If critere Then .TxtPrMO.Value = Format((CDbl(V(0)) * CDbl(V(1))), "#0.00 €"): GotoCalcul Else .TxtPrMO.Value = ""
Case "FrTransport"
V = Array(.PoidsPlante.Value, .PrixKgPlante.Value)
critere = V(0) <> "" And V(1) <> ""
If critere Then .PRTransport.Value = (CDbl(V(0)) * CDbl(V(1))): GotoCalcul Else .PRTransport.Value = ""
End Select
End With
End Sub