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
snapshot

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.

Bonjour, saboh12617

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 ?

image

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
Rechercher des sujets similaires à "repartition billets leur valeur monetaire"