Répartition des billets selon leur valeur monétaire
Bonjour
Pouvez-vous m'aider?
Il y a une erreur dans la répartition des coupures en espèces dans la coupure de 100
Je ne sais pas pourquoi, et j'ai inclus deux codes :
Sous-commande privé CommandButton2_Click()
Sous-commande privé CommandButton30_Click()
Mais c'est pour la même raison
Est-ce à cause de cette équation ?
Math.Round
Private Sub CommandButton2_Click()
Dim total200 As Integer, total100 As Integer, total50 As Integer, total20 As Integer, total10 As Integer, total5 As Integer, total1 As Integer, totalValue As Integer
Dim percent200 As Double, percent100 As Double, percent50 As Double, percent20 As Double, percent10 As Double, percent5 As Double, percent1 As Double, halfPercent As Double
Dim group1Total As Integer, group2Total As Integer
Dim CalculateTotal As Integer
' Valider la saisie
If Not IsNumeric(TextBox11.Text) Or Not IsNumeric(TextBox12.Text) Then
Exit Sub
End If
'Validation des données
If total200 < 0 Or total100 < 0 Or total50 < 0 Or total20 < 0 Or total10 < 0 Or total5 < 0 Or total1 < 0 Then
MessageBox.Show ("Veuillez saisir des valeurs positives")
Exit Sub
End If
If group1Total + group2Total < totalValue Then
MessageBox.Show ("La somme des valeurs cibles est inférieure à la somme des valeurs disponibles TextBox10 ")
Exit Sub
End If
If TextBox10.Value = Empty Then MsgBox "Veuillez entrer les chiffres et la valeur totale ": TextBox1.SetFocus: Exit Sub
'Collecter les valeurs des catégories
total200 = Val(TextBox1.Text) + Val(TextBox4.Text) + Val(TextBox7.Text)
total100 = Val(TextBox2.Text) + Val(TextBox5.Text) + Val(TextBox8.Text)
total50 = Val(TextBox3.Text) + Val(TextBox6.Text) + Val(TextBox9.Text)
total20 = Val(TextBox65.Text) + Val(TextBox71.Text) + Val(TextBox77.Text)
total10 = Val(TextBox66.Text) + Val(TextBox72.Text) + Val(TextBox78.Text)
total5 = Val(TextBox67.Text) + Val(TextBox73.Text) + Val(TextBox79.Text)
total1 = Val(TextBox83.Text) + Val(TextBox84.Text) + Val(TextBox85.Text)
totalValue = total200 * 200 + total100 * 100 + total50 * 50 + total20 * 20 + total10 * 10 + total5 * 5 + total1 * 1
'Calculer le pourcentage pour chaque catégorie
percent200 = total200 * 200 / totalValue
percent100 = total100 * 100 / totalValue
percent50 = total50 * 50 / totalValue
percent20 = total20 * 20 / totalValue
percent10 = total10 * 10 / totalValue
percent5 = total5 * 5 / totalValue
percent1 = total1 * 1 / totalValue
'Répartition des pourcentages entre les deux groupes
group1Total = Val(TextBox11.Text)
group2Total = Val(TextBox12.Text)
''CInt Int CInt mod Int(Rnd Math.Round
'Répartition par catégorie de 200
TextBox4.Text = Math.Round((percent200 * 1 - halfPercent) * group1Total / 200)
TextBox7.Text = Math.Round((percent200 * (1 - halfPercent)) * group2Total / 200)
'Répartition par catégorie de 100
TextBox5.Text = Math.Round((percent100 * 1 - halfPercent) * group1Total / 100)
TextBox8.Text = Math.Round((percent100 * (1 - halfPercent)) * group2Total / 100)
'Répartition par catégorie de 50
TextBox6.Text = Math.Round((percent50 * 1 - halfPercent) * group1Total / 50)
TextBox9.Text = Math.Round((percent50 * (1 - halfPercent)) * group2Total / 50)
'Répartition par catégorie de 20
TextBox71.Text = Math.Round((percent20 * 1 - halfPercent) * group1Total / 20)
TextBox77.Text = Math.Round((percent20 * (1 - halfPercent)) * group2Total / 20)
'Répartition par catégorie de 10
TextBox72.Text = Math.Round((percent10 * 1 - halfPercent) * group1Total / 10)
TextBox78.Text = Math.Round((percent10 * (1 - halfPercent)) * group2Total / 10)
'Répartition par catégorie de 5
TextBox73.Text = Math.Round((percent5 * 1 - halfPercent) * group1Total / 5)
TextBox79.Text = Math.Round((percent5 * (1 - halfPercent)) * group2Total / 5)
'Répartition par catégorie de 1
TextBox84.Text = Math.Round((percent1 * 1 - halfPercent) * group1Total / 1)
TextBox85.Text = Math.Round((percent1 * (1 - halfPercent)) * group2Total / 1)
halfPercent = 0.5
'Calculer les valeurs numériques totales
Me.TextBox58 = Val(TextBox1) + Val(TextBox2) + Val(TextBox65) + Val(TextBox66) + Val(TextBox67) + Val(TextBox83)
Me.TextBox59 = Val(TextBox4) + Val(TextBox5) + Val(TextBox71) + Val(TextBox72) + Val(TextBox73) + Val(TextBox84)
Me.TextBox60 = Val(TextBox7) + Val(TextBox8) + Val(TextBox77) + Val(TextBox78) + Val(TextBox79) + Val(TextBox85)
' Calculez les valeurs monétaires totales à l'aide de la fonction
Me.TextBox13.Value = Val(Me.TextBox1.Value) * 200
Me.TextBox14.Value = Val(Me.TextBox2.Value) * 100
Me.TextBox15.Value = Val(Me.TextBox3.Value) * 50
Me.TextBox16.Value = Val(Me.TextBox4.Value) * 200
Me.TextBox17.Value = Val(Me.TextBox5.Value) * 100
Me.TextBox18.Value = Val(Me.TextBox6.Value) * 50
Me.TextBox19.Value = Val(Me.TextBox7.Value) * 200
Me.TextBox20.Value = Val(Me.TextBox8.Value) * 100
Me.TextBox21.Value = Val(Me.TextBox9.Value) * 50
Me.TextBox68.Value = Val(Me.TextBox65.Value) * 20
Me.TextBox69.Value = Val(Me.TextBox66.Value) * 10
Me.TextBox70.Value = Val(Me.TextBox67.Value) * 5
Me.TextBox86.Value = Val(Me.TextBox83.Value) * 1
Me.TextBox74.Value = Val(Me.TextBox71.Value) * 20
Me.TextBox75.Value = Val(Me.TextBox72.Value) * 10
Me.TextBox76.Value = Val(Me.TextBox73.Value) * 5
Me.TextBox87.Value = Val(Me.TextBox84.Value) * 1
Me.TextBox80.Value = Val(Me.TextBox77.Value) * 20
Me.TextBox81.Value = Val(Me.TextBox78.Value) * 10
Me.TextBox82.Value = Val(Me.TextBox79.Value) * 5
Me.TextBox88.Value = Val(Me.TextBox85.Value) * 1
'Calculer les valeurs numériques totales
Me.TextBox61 = Val(TextBox13) + Val(TextBox14) + Val(TextBox15) + Val(TextBox68) + Val(TextBox69) + Val(TextBox70) + Val(TextBox86)
Me.TextBox62 = Val(TextBox16) + Val(TextBox17) + Val(TextBox18) + Val(TextBox74) + Val(TextBox75) + Val(TextBox76) + Val(TextBox87)
Me.TextBox63 = Val(TextBox19) + Val(TextBox20) + Val(TextBox21) + Val(TextBox80) + Val(TextBox81) + Val(TextBox82) + Val(TextBox88)
Me.TextBox64 = Val(TextBox61) - Val(TextBox62) - Val(TextBox63)
Label38 = Val(TextBox1) - Val(TextBox4) - Val(TextBox7)
Label39 = Val(TextBox2) - Val(TextBox5) - Val(TextBox8)
Label40 = Val(TextBox3) - Val(TextBox6) - Val(TextBox9)
Label41 = Val(TextBox65) - Val(TextBox71) - Val(TextBox77)
Label42 = Val(TextBox66) - Val(TextBox72) - Val(TextBox78)
Label43 = Val(TextBox67) - Val(TextBox73) - Val(TextBox79)
Label69 = Val(TextBox83) - Val(TextBox84) - Val(TextBox85)
Label37 = "La valeur saisie est: " & TextBox64.Text & " C'est donc un choix " & IIf(TextBox64.Text = "0", "positif", "négatif")
Label37.ForeColor = IIf(TextBox64.Text = "0", vbDarkGreen, vbRed)
MsgBox "Distribution terminée avec succès"
End Sub
Private Sub CommandButton30_Click()
' Lire les valeurs des zones de texte (en supposant que les valeurs soient stockées dans les variables suivantes)
Dim totalValue200 As Integer: totalValue200 = Val(TextBox1.Text) + Val(TextBox4.Text) + Val(TextBox7.Text)
Dim totalValue100 As Integer: totalValue100 = Val(TextBox2.Text) + Val(TextBox5.Text) + Val(TextBox8.Text)
Dim totalValue50 As Integer: totalValue50 = Val(TextBox3.Text) + Val(TextBox6.Text) + Val(TextBox9.Text)
Dim totalValue20 As Integer: totalValue20 = Val(TextBox65.Text) + Val(TextBox71.Text) + Val(TextBox77.Text)
Dim totalValue10 As Integer: totalValue10 = Val(TextBox66.Text) + Val(TextBox72.Text) + Val(TextBox78.Text)
Dim totalValue5 As Integer: totalValue5 = Val(TextBox67.Text) + Val(TextBox73.Text) + Val(TextBox79.Text)
Dim totalValue1 As Integer: totalValue1 = Val(TextBox83.Text) + Val(TextBox84.Text) + Val(TextBox85.Text)
Dim group1Total As Integer: group1Total = Val(TextBox11.Text)
Dim group2Total As Integer: group2Total = Val(TextBox12.Text)
' Calculer la valeur totale globale
Dim totalValue As Integer
totalValue = totalValue200 * 200 + totalValue100 * 100 + totalValue50 * 50 + totalValue20 * 20 + totalValue10 * 10 + totalValue5 * 5 + totalValue1 * 1
'Calculer le pourcentage de chaque catégorie de la valeur totale
Dim percentage200 As Double: percentage200 = CDbl(totalValue200 * 200) / totalValue
Dim percentage100 As Double: percentage100 = CDbl(totalValue100 * 100) / totalValue
Dim percentage50 As Double: percentage50 = CDbl(totalValue50 * 50) / totalValue
Dim percentage20 As Double: percentage20 = CDbl(totalValue20 * 20) / totalValue
Dim percentage10 As Double: percentage10 = CDbl(totalValue10 * 10) / totalValue
Dim percentage5 As Double: percentage5 = CDbl(totalValue5 * 5) / totalValue
Dim percentage1 As Double: percentage1 = CDbl(totalValue1 * 1) / totalValue
' Répartir les valeurs entre les deux groupes proportionnellement avec des pourcentages
Dim group1Value200 As Integer: group1Value200 = CInt(Math.Round(percentage200 * group1Total / 200))
Dim group2Value200 As Integer: group2Value200 = CInt(Math.Round(percentage200 * group2Total / 200))
Dim group1Value100 As Integer: group1Value100 = CInt(Math.Round(percentage100 * group1Total / 100))
Dim group2Value100 As Integer: group2Value100 = CInt(Math.Round(percentage100 * group2Total / 100))
Dim group1Value50 As Integer: group1Value50 = CInt(Math.Round(percentage50 * group1Total / 50))
Dim group2Value50 As Integer: group2Value50 = CInt(Math.Round(percentage50 * group2Total / 50))
Dim group1Value20 As Integer: group1Value20 = CInt(Math.Round(percentage20 * group1Total / 20))
Dim group2Value20 As Integer: group2Value20 = CInt(Math.Round(percentage20 * group2Total / 20))
Dim group1Value10 As Integer: group1Value10 = CInt(Math.Round(percentage10 * group1Total / 10))
Dim group2Value10 As Integer: group2Value10 = CInt(Math.Round(percentage10 * group2Total / 10))
Dim group1Value5 As Integer: group1Value5 = CInt(Math.Round(percentage5 * group1Total / 5))
Dim group2Value5 As Integer: group2Value5 = CInt(Math.Round(percentage5 * group2Total / 5))
Dim group1Value1 As Integer: group1Value1 = CInt(Math.Round(percentage1 * group1Total / 1))
Dim group2Value1 As Integer: group2Value1 = CInt(Math.Round(percentage1 * group2Total / 1))
' Vérifiez que la somme des valeurs des deux groupes est égale aux valeurs totales
If group1Value200 + group2Value200 <> totalValue200 Or _
group1Value100 + group2Value100 <> totalValue100 Or _
group1Value50 + group2Value50 <> totalValue50 Or _
group1Value20 + group2Value20 <> totalValue20 Or _
group1Value10 + group2Value10 <> totalValue10 Or _
group1Value5 + group2Value5 <> totalValue5 Or _
group1Value1 + group2Value1 <> totalValue1 Then
MsgBox "Une erreur s'est produite dans les calculs : la somme des valeurs ne correspond pas"
Exit Sub
End If
' Mettre à jour les zones de texte avec les résultats
'...le reste des zones de texte du premier groupe
TextBox4.Text = Int(group1Value200)
TextBox5.Text = Int(group1Value100)
TextBox6.Text = Int(group1Value50)
TextBox71.Text = Int(group1Value20)
TextBox72.Text = Int(group1Value10)
TextBox73.Text = Int(group1Value5)
TextBox84.Text = Int(group1Value1)
'...le reste des zones de texte pour le deuxième groupe
TextBox7.Text = Int(group2Value200)
TextBox8.Text = Int(group2Value100)
TextBox9.Text = Int(group2Value50)
TextBox77.Text = Int(group2Value20)
TextBox78.Text = Int(group2Value10)
TextBox79.Text = Int(group2Value5)
TextBox85.Text = Int(group2Value1)
End Sub
Bonjour,
C'est intéressant. Pouvez-vous expliquer comment vous calculez votre répartition ? J'ai l'impression que vous divisez le montant total par 2, vous comptez combien vous pouvez mettre de billets de 200 dans cette moitiée, puis vous faites l'accompte de la moitié restante en descendant comme ceci pour chaque "valeur de billet" ?
Je vous pose la question car je pense que l'erreur peut etre dans le processus de calcul des vos quantités de billets, mais comme c'est assez complexe comme calcul, une petite explication serait bienvenue.
Les billets sont divisés en coupures de 200, coupures de 100, coupures de 50, coupures de 20, coupures de 10 et coupures de 5.
Et classe 1
Quand je mets les valeurs papier dans Textbox1,2,3,65,66,67,83
Transforme la somme des valeurs papier en valeurs monétaires en
(Présentation du montage (total))Textbox10
Comme le montre l'image, par exemple, la valeur est 4116
Ensuite je mets la valeur et choisis dans les deux groupes
(Présentation Montant)Textbox11 2058
et
(Présentation Montant)Textbox12 2058
Je souhaite distribuer les billets au premier et au deuxième groupe selon les cartes de Textbox1,2,3,65,66,67,83 au premier groupe.
Zone de texte4,5,6,71,72,73,84
Et au deuxième groupe
Zone de texte7,8,9,77,78,79,85
A condition que la répartition des cartes au premier et au deuxième groupe se fasse en fonction des valeurs monétaires que je place aléatoirement dans Textbox11 et
Zone de Textbox12
Pour que les valeurs que je mets dans Textbox11 et Textbox12 soient parallèles dans Textbox10, la valeur totale.
Bonjour,
d'accord, j'avais tout compris de travers, maintenant c'est un peu plus clair.
En gros en 1e colonne vous avez votre masse monétaire, et en colonnes 2 et 3 vous la répartissez.
Votre erreur vient simplement du fait que vous réalisez une répartition équitable entre les deux colonnes, et par groupe de billet.
Donc si la quantité de billets initiale dans un groupe est impaire, forcément il vous manquera un billet à la fin.
D'où mes deux questions suivantes (car j'ai beaucoup de mal à suivre quel TextBox est quoi, il aurait été très utile de les renommer) :
La répartition est-elle toujours équitable ?
Si oui, doit-elle absolument conserver un nombre de billets identique pour les deux groupes ? Si oui, votre projet n'a pas d'erreurs, il vous renvoie les billets "qu'on ne peut pas couper".
Si la répartition est équitable, est-ce simplement sur la valeur totale (le montant présumé) ? Auquel cas on peut faire des calculs pour diviser un billet de 100 en 2 de cinquante, et au final donner dans votre exemple : 8 billets de 100 à la 2e colonne + 3 de 50. Et 7 de 100 + 5 de 50 à la 3e colonne. Problème résolu, à voir comment le coder ensuite.
Si la répartition n'est pas toujours équitable, ie. vous la définissez, précisez comment et quelles sont les contraintes svp.
Je veux que la répartition soit équitable, sans droit à l'erreur
Mais l'erreur existe dans la nature de l'équation, par exemple si 100 = 50-50
Mais si c'était 100 = 75-25 ou 100 = 30-70, etc., l'équation serait correcte, je crains qu'à cause de cette équation Math.Round, elle ne réponde pas à l'objectif dans le cas de la division.
Bonjour,
Oui vous pouvez le formuler comme cela si vous voulez. Dans une répartition 50/50 (division par 2), les nombres impaires ont tous un reste de 1.
Vous pouvez utiliser Round, mais il serait préférable d'utiliser les opérateurs de division des entiers :
\, opérateur - Visual Basic | Microsoft Learn
Opérateur Mod | Microsoft Learn
Mais bon le principe est le meme : vous faites une division, et donnez X billets à une colonne, et nécessairement l'autre colonne aura X+1 billets.
D'ailleurs c'est un cas qui peut se produire dans beaucoup d'autres répartitions que 50/50, soyez vigilant. Il faudrait selon moi revoir l'intégralité du calcul. Si j'ai le temps je regarderai.
Le principe étant de faire un calcul "de haut en bas". Vous prenez les billets de 200, les répartissez. Puis vous calculez la valeur monétaire de chaque groupe. En fonction de cela vous répartissez les billets de 100, etc ,etc. Ainsi si un groupe se retrouve avec davantage de billets de 200, vous compensez sur les billets de 100.
Pouvez-vous m'aider à faire fonctionner ce code avec succès dans mon projet ?
@Saboh12617, allez ..., toutes les combinaisons possibles avec le nombre et le type de billets ...
en éspérant que Mody utilise 365
en utilisant "Solver"
Oui bien entendu, quand j'ai le temps de regarder je m'y plonge.
Que l'on soit bien clair, sur cette image, les cellules encadrées en rouge sont vos entrées ?
Ahahaha @BsAlv oui j'y ai pensé mais on va essayer d'éviter
Par ailleurs @mody pouvez-vous préciser votre versionn d'Excel ? Pour info sur l'abonnement 365 ce doit etre résolvable sans vba.
re,
2 macros, une pour créer une nouvelle situation et l'autre pour répartir
j'ai trouvé la solution
Private Sub CommandButton31_Click()
Dim totalValue As Double
Dim targetValue1 As Double
Dim targetValue2 As Double
' Get values from TextBoxes
totalValue = Val(TextBox10.Value)
targetValue1 = Val(TextBox11.Value)
targetValue2 = Val(TextBox12.Value)
' Check for feasibility
If targetValue1 + targetValue2 <> totalValue Then
MsgBox "Target values do not match total value.", vbCritical
Exit Sub
End If
' Initialize banknote counts
Dim count200 As Integer: count200 = Val(TextBox1.Value)
Dim count100 As Integer: count100 = Val(TextBox2.Value)
Dim count50 As Integer: count50 = Val(TextBox3.Value)
Dim count20 As Integer: count20 = Val(TextBox65.Value)
Dim count10 As Integer: count10 = Val(TextBox66.Value)
Dim count5 As Integer: count5 = Val(TextBox67.Value)
Dim count1 As Integer: count1 = Val(TextBox83.Value)
' Create arrays to store distribution
Dim group1(1 To 7) As Integer
Dim group2(1 To 7) As Integer
' Random distribution loop
Do
' Reset group values
For i = 1 To 7
group1(i) = 0
group2(i) = 0
Next i
' Randomly assign 200 denomination banknotes
Randomize
For i = 1 To count200
If Rnd() < 0.5 Then
group1(1) = group1(1) + 1
Else
group2(1) = group2(1) + 1
End If
Next
' Randomly assign 100 denomination banknotes
Randomize
For i = 1 To count100
If Rnd() < 0.5 Then
group1(2) = group1(2) + 1
Else
group2(2) = group2(2) + 1
End If
Next
' Randomly assign 50 denomination banknotes
Randomize
For i = 1 To count50
If Rnd() < 0.5 Then
group1(3) = group1(3) + 1
Else
group2(3) = group2(3) + 1
End If
Next
' Randomly assign 20 denomination banknotes
Randomize
For i = 1 To count20
If Rnd() < 0.5 Then
group1(4) = group1(4) + 1
Else
group2(4) = group2(4) + 1
End If
Next
' Randomly assign 10 denomination banknotes
Randomize
For i = 1 To count10
If Rnd() < 0.5 Then
group1(5) = group1(5) + 1
Else
group2(5) = group2(5) + 1
End If
Next
' Randomly assign 5 denomination banknotes
Randomize
For i = 1 To count5
If Rnd() < 0.5 Then
group1(6) = group1(6) + 1
Else
group2(6) = group2(6) + 1
End If
Next
' Randomly assign 1 denomination banknotes
Randomize
For i = 1 To count1
If Rnd() < 0.5 Then
group1(7) = group1(7) + 1
Else
group2(7) = group2(7) + 1
End If
Next
' Calculate the total value of each group
Dim group1Total As Double: group1Total = group1(1) * 200 + group1(2) * 100 + group1(3) * 50 + group1(4) * 20 + group1(5) * 10 + group1(6) * 5 + group1(7) * 1
Dim group2Total As Double: group2Total = group2(1) * 200 + group2(2) * 100 + group2(3) * 50 + group2(4) * 20 + group2(5) * 10 + group2(6) * 5 + group2(7) * 1
Loop Until group1Total = targetValue1 And group2Total = targetValue2
' Display the distribution in TextBoxes or other controls
TextBox4.Value = group1(1)
TextBox7.Value = group2(1)
TextBox5.Value = group1(2)
TextBox8.Value = group2(2)
TextBox6.Value = group1(3)
TextBox9.Value = group2(3)
TextBox71.Value = group1(4)
TextBox77.Value = group2(4)
TextBox72.Value = group1(5)
TextBox78.Value = group2(5)
TextBox73.Value = group1(6)
TextBox79.Value = group2(6)
TextBox84.Value = group1(7)
TextBox85.Value = group2(7)
'Calculer les valeurs numériques totales
Me.TextBox58 = Val(TextBox1) + Val(TextBox2) + Val(TextBox65) + Val(TextBox66) + Val(TextBox67) + Val(TextBox83)
Me.TextBox59 = Val(TextBox4) + Val(TextBox5) + Val(TextBox71) + Val(TextBox72) + Val(TextBox73) + Val(TextBox84)
Me.TextBox60 = Val(TextBox7) + Val(TextBox8) + Val(TextBox77) + Val(TextBox78) + Val(TextBox79) + Val(TextBox85)
' Calculez les valeurs monétaires totales à l'aide de la fonction
Me.TextBox13.Value = Val(Me.TextBox1.Value) * 200
Me.TextBox14.Value = Val(Me.TextBox2.Value) * 100
Me.TextBox15.Value = Val(Me.TextBox3.Value) * 50
Me.TextBox16.Value = Val(Me.TextBox4.Value) * 200
Me.TextBox17.Value = Val(Me.TextBox5.Value) * 100
Me.TextBox18.Value = Val(Me.TextBox6.Value) * 50
Me.TextBox19.Value = Val(Me.TextBox7.Value) * 200
Me.TextBox20.Value = Val(Me.TextBox8.Value) * 100
Me.TextBox21.Value = Val(Me.TextBox9.Value) * 50
Me.TextBox68.Value = Val(Me.TextBox65.Value) * 20
Me.TextBox69.Value = Val(Me.TextBox66.Value) * 10
Me.TextBox70.Value = Val(Me.TextBox67.Value) * 5
Me.TextBox86.Value = Val(Me.TextBox83.Value) * 1
Me.TextBox74.Value = Val(Me.TextBox71.Value) * 20
Me.TextBox75.Value = Val(Me.TextBox72.Value) * 10
Me.TextBox76.Value = Val(Me.TextBox73.Value) * 5
Me.TextBox87.Value = Val(Me.TextBox84.Value) * 1
Me.TextBox80.Value = Val(Me.TextBox77.Value) * 20
Me.TextBox81.Value = Val(Me.TextBox78.Value) * 10
Me.TextBox82.Value = Val(Me.TextBox79.Value) * 5
Me.TextBox88.Value = Val(Me.TextBox85.Value) * 1
'Calculer les valeurs numériques totales
Me.TextBox61 = Val(TextBox13) + Val(TextBox14) + Val(TextBox15) + Val(TextBox68) + Val(TextBox69) + Val(TextBox70) + Val(TextBox86)
Me.TextBox62 = Val(TextBox16) + Val(TextBox17) + Val(TextBox18) + Val(TextBox74) + Val(TextBox75) + Val(TextBox76) + Val(TextBox87)
Me.TextBox63 = Val(TextBox19) + Val(TextBox20) + Val(TextBox21) + Val(TextBox80) + Val(TextBox81) + Val(TextBox82) + Val(TextBox88)
Me.TextBox64 = Val(TextBox61) - Val(TextBox62) - Val(TextBox63)
Label38 = Val(TextBox1) - Val(TextBox4) - Val(TextBox7)
Label39 = Val(TextBox2) - Val(TextBox5) - Val(TextBox8)
Label40 = Val(TextBox3) - Val(TextBox6) - Val(TextBox9)
Label41 = Val(TextBox65) - Val(TextBox71) - Val(TextBox77)
Label42 = Val(TextBox66) - Val(TextBox72) - Val(TextBox78)
Label43 = Val(TextBox67) - Val(TextBox73) - Val(TextBox79)
Label44 = Val(TextBox83) - Val(TextBox84) - Val(TextBox85)
Label37 = "La valeur saisie est: " & TextBox64.Text & " C'est donc un choix " & IIf(TextBox64.Text = "0", "positif", "négatif")
Label37.ForeColor = IIf(TextBox64.Text = "0", vbDarkGreen, vbRed)
Call Change_values_and_colors
' MsgBox "Distribution terminée avec succès"
'Call Change_values_and_colors
End Sub