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 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
|
Public Sub Calcul()
Dim LongTot, LargPtx, VideReel, LondDePtx As Double
Dim NbPtr, NbPtx As Integer
Dim VideTot, VideTot1, VideTot2, VideTotTest As Double
Dim NbPtr1, NbPtr2 As Integer
Dim LgPtr1, LgPtr2 As Double
If IsNumeric(TXB_NbPtr.Value) And IsNumeric(TXB_LargPtx.Value) And IsNumeric(TXB_LongTot.Value) Then
LongTot = TXB_LongTot.Value
LargPtx = TXB_LargPtx.Value
NbPtr = TXB_NbPtr.Value
NbPtx = TXB_NbPtr - 1
LongDePtx = LargPtx * NbPtx
VideReel = (LongTot - NbPtx * LargPtx) / NbPtr
'Mise à jour des infos de calcul (en bas)
'si nombres < 0 alors nombre = 0
If LongDePtx < 0 Then
LBL_LongDePtx.Caption = 0
Else
LBL_LongDePtx.Caption = LongDePtx
End If
If NbPtx < 0 Then
LBL_NbPtx.Caption = 0
Else
LBL_NbPtx.Caption = NbPtx
End If
If VideReel < 0 Then
LBL_VideReel.Caption = 0
Else
LBL_VideReel = VideReel
End If
Else
LBL_VideReel.Caption = 0
LBL_NbPtx.Caption = 0
LBL_LongDePtx = 0
End If
If IsNumeric(TXB_NbPtr.Value) And IsNumeric(TXB_LargPtx.Value) And IsNumeric(TXB_LongTot.Value) Then
LBL_NbPtr1 = True
VideTot = LongTot - LongDePtx
If Len(VideReel) <= 5 Then
If Mid(VideReel, 5) = 5 Or Len(VideReel) < 5 Then
LgPtr1 = VideReel
NbPtr1 = NbPtr
LBL_Nb1 = NbPtr1 & " poutres de " & VideReel & " ml."
LBL_Nb1.Visible = True
LBL_Nb2.Visible = False
Exit Sub
End If
Else
NbPtr1 = 1
LgPtr1 = Round(VideReel - 0.005, 2)
NbPtr2 = NbPtr - NbPtr1
LgPtr2 = Round(VideReel + 0.005, 2)
VideTot1 = NbPtr1 * LgPtr1
VideTot2 = NbPtr2 * LgPtr2
VideTotTest = VideTot1 + VideTot2
While VideTotTest <> VideTot 'C'est ici que ça ne marche pas comme prévu
MsgBox "hop"
If NbPtr1 > 1000 Then
MsgBox "erreur"
LBL_Nb1.Visible = False
LBL_Nb2.Visible = False
Exit Sub
End If
NbPtr1 = NbPtr1 + 1
NbPtr2 = NbPtr - NbPtr1
VideTot1 = NbPtr1 * LgPtr1
VideTot2 = NbPtr2 * LgPtr2
Wend
End If
Else
LBL_Nb1.Visible = False
LBL_Nb2.Visible = False
End If
End Sub |
Partager