Discussion: Plusieurs boutons un seul calcul [Débutant]

  1. #1
    Candidat au Club
    Homme Profil pro
    Sans emploi
    Inscrit en
    décembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Sans emploi

    Informations forums :
    Inscription : décembre 2017
    Messages : 4
    Points : 2
    Points
    2

    Par défaut Plusieurs boutons un seul calcul

    Bonjour,

    Je débute en programmation et généralement je fais des recherches pour répondre à mes questions mais la je ne trouve pas, je vous expose mon problème.

    Je fais un programme avec Microsoft visual basic 2010 express ou il y a actuellement 28 boutons qui remplissent 27 textbox.
    Chaque bouton rempli une textbox et lance le calcul pour que le résultat s'actualise au fur et à mesure que je rempli ou vide les textbox.

    Du coup je dois mettre la formule de calcul sur tous les boutons, j'ai donc la même formule répété 28 fois et si je dois la modifier ca me prend un bon bout de temps.
    Je prend mon mal en patience et je le fais mais je vais bientôt passer à un nouvel onglet ou j'aurai plus d'une centaine de boutons avec une formule plus complexe.

    J'aimerai donc savoir si il y a la possibilité de mettre la formule à un seul endroit et que chaque bouton aille lire cette formule dès que je clique dessus?

    Voici la formule actuelle même si je ne pense pas que ca vous aiderez à me répondre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
     Private Sub PictureBox2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox2.Click
            If TextBox44.Text = "A" Then
                TextBox3.Text = 0
            ElseIf TextBox3.Text < 4 Then
                TextBox3.Text = 1 + TextBox3.Text
            End If
            TextBox19.Text = Val(TextBox3.Text) + (TextBox4.Text) + (TextBox5.Text) + (TextBox6.Text) + (TextBox7.Text)
            TextBox20.Text = Val(TextBox3.Text) + (TextBox4.Text) + (TextBox5.Text) + (TextBox6.Text) + (TextBox7.Text) + (TextBox8.Text)
            TextBox21.Text = Val(TextBox3.Text) + (TextBox4.Text) + (TextBox5.Text) + (TextBox6.Text) + (TextBox7.Text) + (TextBox8.Text) + (TextBox9.Text)
            TextBox22.Text = Val(TextBox3.Text) + (TextBox4.Text) + (TextBox5.Text) + (TextBox6.Text) + (TextBox7.Text) + (TextBox8.Text) + (TextBox9.Text) + (TextBox10.Text)
            TextBox23.Text = Val(TextBox3.Text) + (TextBox4.Text) + (TextBox5.Text) + (TextBox6.Text) + (TextBox7.Text) + (TextBox8.Text) + (TextBox9.Text) + (TextBox10.Text) + (TextBox11.Text)
            TextBox24.Text = Val(TextBox3.Text) + (TextBox4.Text) + (TextBox5.Text) + (TextBox6.Text) + (TextBox7.Text) + (TextBox8.Text) + (TextBox9.Text) + (TextBox10.Text) + (TextBox11.Text) + (TextBox12.Text)
            TextBox25.Text = Val(TextBox3.Text) + (TextBox4.Text) + (TextBox5.Text) + (TextBox6.Text) + (TextBox7.Text) + (TextBox8.Text) + (TextBox9.Text) + (TextBox10.Text) + (TextBox11.Text) + (TextBox12.Text) + (TextBox13.Text)
            TextBox26.Text = Val(TextBox3.Text) + (TextBox4.Text) + (TextBox5.Text) + (TextBox6.Text) + (TextBox7.Text) + (TextBox8.Text) + (TextBox9.Text) + (TextBox10.Text) + (TextBox11.Text) + (TextBox12.Text) + (TextBox13.Text) + (TextBox14.Text)
            TextBox27.Text = Val(TextBox3.Text) + (TextBox4.Text) + (TextBox5.Text) + (TextBox6.Text) + (TextBox7.Text) + (TextBox8.Text) + (TextBox9.Text) + (TextBox10.Text) + (TextBox11.Text) + (TextBox12.Text) + (TextBox13.Text) + (TextBox14.Text) + (TextBox15.Text)
     
            If TextBox19.Text < 4 Then
                Label12.Text = Math.Round(Val(100 - ((((48 - Label61.Text - (4 - TextBox19.Text)) / (48 - Label61.Text)) * ((47 - Label61.Text - (4 - TextBox19.Text)) / (47 - Label61.Text)) * ((46 - Label61.Text - (4 - TextBox19.Text)) / (46 - Label61.Text)))) * 100), 2) & "%"
            Else : Label12.Text = 0 & "%"
            End If
            If TextBox20.Text < 8 Then
                Label13.Text = Math.Round(Val(100 - ((((48 - Label61.Text - (8 - TextBox20.Text)) / (48 - Label61.Text)) * ((47 - Label61.Text - (8 - TextBox20.Text)) / (47 - Label61.Text)) * ((46 - Label61.Text - (8 - TextBox20.Text)) / (46 - Label61.Text)))) * 100), 2) & "%"
            Else : Label13.Text = 0 & "%"
            End If
            If TextBox21.Text < 12 Then
                Label14.Text = Math.Round(Val(100 - ((((48 - Label61.Text - (12 - TextBox21.Text)) / (48 - Label61.Text)) * ((47 - Label61.Text - (12 - TextBox21.Text)) / (47 - Label61.Text)) * ((46 - Label61.Text - (12 - TextBox21.Text)) / (46 - Label61.Text)))) * 100), 2) & "%"
            Else : Label14.Text = 0 & "%"
            End If
            If TextBox22.Text < 16 Then
                Label15.Text = Math.Round(Val(100 - ((((48 - Label61.Text - (16 - TextBox22.Text)) / (48 - Label61.Text)) * ((47 - Label61.Text - (16 - TextBox22.Text)) / (47 - Label61.Text)) * ((46 - Label61.Text - (16 - TextBox22.Text)) / (46 - Label61.Text)))) * 100), 2) & "%"
            Else : Label15.Text = 0 & "%"
            End If
            If TextBox23.Text < 20 Then
                Label16.Text = Math.Round(Val(100 - ((((48 - Label61.Text - (20 - TextBox23.Text)) / (48 - Label61.Text)) * ((47 - Label61.Text - (20 - TextBox23.Text)) / (47 - Label61.Text)) * ((46 - Label61.Text - (20 - TextBox23.Text)) / (46 - Label61.Text)))) * 100), 2) & "%"
            Else : Label16.Text = 0 & "%"
            End If
            If TextBox24.Text < 24 Then
                Label17.Text = Math.Round(Val(100 - ((((48 - Label61.Text - (24 - TextBox24.Text)) / (48 - Label61.Text)) * ((47 - Label61.Text - (24 - TextBox24.Text)) / (47 - Label61.Text)) * ((46 - Label61.Text - (24 - TextBox24.Text)) / (46 - Label61.Text)))) * 100), 2) & "%"
            Else : Label17.Text = 0 & "%"
            End If
            If TextBox25.Text < 28 Then
                Label18.Text = Math.Round(Val(100 - ((((48 - Label61.Text - (28 - TextBox25.Text)) / (48 - Label61.Text)) * ((47 - Label61.Text - (28 - TextBox25.Text)) / (47 - Label61.Text)) * ((46 - Label61.Text - (28 - TextBox25.Text)) / (46 - Label61.Text)))) * 100), 2) & "%"
            Else : Label18.Text = 0 & "%"
            End If
            If TextBox26.Text < 32 Then
                Label19.Text = Math.Round(Val(100 - ((((48 - Label61.Text - (32 - TextBox26.Text)) / (48 - Label61.Text)) * ((47 - Label61.Text - (32 - TextBox26.Text)) / (47 - Label61.Text)) * ((46 - Label61.Text - (32 - TextBox26.Text)) / (46 - Label61.Text)))) * 100), 2) & "%"
            Else : Label19.Text = 0 & "%"
            End If
            If TextBox27.Text < 36 Then
                Label20.Text = Math.Round(Val(100 - ((((48 - Label61.Text - (36 - TextBox27.Text)) / (48 - Label61.Text)) * ((47 - Label61.Text - (36 - TextBox27.Text)) / (47 - Label61.Text)) * ((46 - Label61.Text - (36 - TextBox27.Text)) / (46 - Label61.Text)))) * 100), 2) & "%"
            Else : Label20.Text = 0 & "%"
            End If
     
            If TextBox19.Text < 4 Then
                Label21.Text = Math.Round(Val(100 - ((((47 - Label61.Text - (4 - TextBox19.Text)) / (47 - Label61.Text)) * ((46 - Label61.Text - (4 - TextBox19.Text)) / (46 - Label61.Text)))) * 100), 2) & "%"
            Else : Label21.Text = 0 & "%"
            End If
            If TextBox20.Text < 8 Then
                Label29.Text = Math.Round(Val(100 - ((((47 - Label61.Text - (8 - TextBox20.Text)) / (47 - Label61.Text)) * ((46 - Label61.Text - (8 - TextBox20.Text)) / (46 - Label61.Text)))) * 100), 2) & "%"
            Else : Label29.Text = 0 & "%"
            End If
            If TextBox21.Text < 12 Then
                Label28.Text = Math.Round(Val(100 - ((((47 - Label61.Text - (12 - TextBox21.Text)) / (47 - Label61.Text)) * ((46 - Label61.Text - (12 - TextBox21.Text)) / (46 - Label61.Text)))) * 100), 2) & "%"
            Else : Label28.Text = 0 & "%"
            End If
            If TextBox22.Text < 16 Then
                Label27.Text = Math.Round(Val(100 - ((((47 - Label61.Text - (16 - TextBox22.Text)) / (47 - Label61.Text)) * ((46 - Label61.Text - (16 - TextBox22.Text)) / (46 - Label61.Text)))) * 100), 2) & "%"
            Else : Label27.Text = 0 & "%"
            End If
            If TextBox23.Text < 20 Then
                Label26.Text = Math.Round(Val(100 - ((((47 - Label61.Text - (20 - TextBox23.Text)) / (47 - Label61.Text)) * ((46 - Label61.Text - (20 - TextBox23.Text)) / (46 - Label61.Text)))) * 100), 2) & "%"
            Else : Label26.Text = 0 & "%"
            End If
            If TextBox24.Text < 24 Then
                Label25.Text = Math.Round(Val(100 - ((((47 - Label61.Text - (24 - TextBox24.Text)) / (47 - Label61.Text)) * ((46 - Label61.Text - (24 - TextBox24.Text)) / (46 - Label61.Text)))) * 100), 2) & "%"
            Else : Label25.Text = 0 & "%"
            End If
            If TextBox25.Text < 28 Then
                Label24.Text = Math.Round(Val(100 - ((((47 - Label61.Text - (28 - TextBox25.Text)) / (47 - Label61.Text)) * ((46 - Label61.Text - (28 - TextBox25.Text)) / (46 - Label61.Text)))) * 100), 2) & "%"
            Else : Label24.Text = 0 & "%"
            End If
            If TextBox26.Text < 32 Then
                Label23.Text = Math.Round(Val(100 - ((((47 - Label61.Text - (32 - TextBox26.Text)) / (47 - Label61.Text)) * ((46 - Label61.Text - (32 - TextBox26.Text)) / (46 - Label61.Text)))) * 100), 2) & "%"
            Else : Label23.Text = 0 & "%"
            End If
            If TextBox27.Text < 36 Then
                Label22.Text = Math.Round(Val(100 - ((((47 - Label61.Text - (36 - TextBox27.Text)) / (47 - Label61.Text)) * ((46 - Label61.Text - (36 - TextBox27.Text)) / (46 - Label61.Text)))) * 100), 2) & "%"
            Else : Label22.Text = 0 & "%"
            End If
     
            If TextBox19.Text < 4 Then
                Label30.Text = Math.Round(Val(100 - ((((46 - Label61.Text - (4 - TextBox19.Text)) / (46 - Label61.Text)))) * 100), 2) & "%"
            Else : Label30.Text = 0 & "%"
            End If
            If TextBox20.Text < 8 Then
                Label38.Text = Math.Round(Val(100 - ((((46 - Label61.Text - (8 - TextBox20.Text)) / (46 - Label61.Text)))) * 100), 2) & "%"
            Else : Label38.Text = 0 & "%"
            End If
            If TextBox21.Text < 12 Then
                Label37.Text = Math.Round(Val(100 - ((((46 - Label61.Text - (12 - TextBox21.Text)) / (46 - Label61.Text)))) * 100), 2) & "%"
            Else : Label37.Text = 0 & "%"
            End If
            If TextBox22.Text < 16 Then
                Label36.Text = Math.Round(Val(100 - ((((46 - Label61.Text - (16 - TextBox22.Text)) / (46 - Label61.Text)))) * 100), 2) & "%"
            Else : Label36.Text = 0 & "%"
            End If
            If TextBox23.Text < 20 Then
                Label35.Text = Math.Round(Val(100 - ((((46 - Label61.Text - (20 - TextBox23.Text)) / (46 - Label61.Text)))) * 100), 2) & "%"
            Else : Label35.Text = 0 & "%"
            End If
            If TextBox24.Text < 24 Then
                Label34.Text = Math.Round(Val(100 - ((((46 - Label61.Text - (24 - TextBox24.Text)) / (46 - Label61.Text)))) * 100), 2) & "%"
            Else : Label34.Text = 0 & "%"
            End If
            If TextBox25.Text < 28 Then
                Label33.Text = Math.Round(Val(100 - ((((46 - Label61.Text - (28 - TextBox25.Text)) / (46 - Label61.Text)))) * 100), 2) & "%"
            Else : Label33.Text = 0 & "%"
            End If
            If TextBox26.Text < 32 Then
                Label32.Text = Math.Round(Val(100 - ((((46 - Label61.Text - (32 - TextBox26.Text)) / (46 - Label61.Text)))) * 100), 2) & "%"
            Else : Label32.Text = 0 & "%"
            End If
            If TextBox27.Text < 36 Then
                Label31.Text = Math.Round(Val(100 - ((((46 - Label61.Text - (36 - TextBox27.Text)) / (46 - Label61.Text)))) * 100), 2) & "%"
            Else : Label31.Text = 0 & "%"
            End If
        End Sub
    Merci

  2. #2
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    octobre 2013
    Messages
    1 477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : octobre 2013
    Messages : 1 477
    Points : 3 279
    Points
    3 279

    Par défaut

    Bonsoir,

    Alors pour répondre à ta question : YES, WE CAN !

    Quand tu parles de formule, tu parles de tout le contenu de ta méthode ou juste de la partie
    Math.Round(Val(100 - ((((47 - Label61.Text - (24 - TextBox24.Text)) / (47 - Label61.Text)) * ((46 - Label61.Text - (24 - TextBox24.Text)) / (46 - Label61.Text)))) * 100), 2) & "%"
    ?

    Dans les deux cas tu peux créer une nouvelle méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Private Function Calculer(Param1 As Integer, Param2 As Integer) AS Integer
          Return Math.Round(Val(100 - ((((47 - Param1 - (24 - Param2)) / (47 - Param1)) * ((46 - Param1 - (24 - Param2)) / (46 -Param1)))) * 100), 2)
    End Function
    De même pour toutes les opérations répétitives que tu effectues dans le code que tu nous a envoyé.

    PS : un conseil pour bien débuter, jette un œil au tuto VB.NET

  3. #3
    Candidat au Club
    Homme Profil pro
    Sans emploi
    Inscrit en
    décembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Sans emploi

    Informations forums :
    Inscription : décembre 2017
    Messages : 4
    Points : 2
    Points
    2

    Par défaut

    Bonsoir et merci pour la réponse

    J'ai essayé de voir comment faire avec ce que tu me donne mais je n'ai pas tout compris et du coup j'ai mis en l'air tout mes calculs, mais bon, ca c'est pas bien grave, une fois que j'aurai compris je referai tout.

    Le 1er "IF" est spécifique à ce bouton, tout le reste est commun à tous les boutons.

    La ou ca cloche c'est que tu remplace "Label61.Text" par "Param1" et "TextBox24.Text" par "Param2"
    Label61.Text est rempli par 2 boutons, un + et un - (il commence à 0, en cliquant sur + ca monte de 1 et en cliquant sur - ca descend de 1)
    TextBox24.Text est rempli par un autre bouton (il commence à 0 et chaque fois que je clique dessus ca monte de 1)

    Et toutes les Textbox ont leurs propres boutons qui remplissent chacun une textbox et font aussi le calcul.
    Calcul qui rempli 36 labels différents.

    J'ai été voir un peu ce qu'était les fonctions et comment s'en servir mais ca ne m'a pas plus avancer que ca.

    Je vais faire un truc plus simple pour que ce soit plus facile pour moi et certainement plus compréhensible pour vous.

  4. #4
    Candidat au Club
    Homme Profil pro
    Sans emploi
    Inscrit en
    décembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Sans emploi

    Informations forums :
    Inscription : décembre 2017
    Messages : 4
    Points : 2
    Points
    2

    Par défaut

    Rebonjour,

    Voilà ce que je viens de faire:
    Nom : 2017-12-14.png
Affichages : 40
Taille : 3,3 Ko

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    Public Class Form1
        Dim opération As Double
        Dim signe As Char
        Private Sub bt0_click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt0.Click
            If TextBox1.Text = "0" Then TextBox1.Text = ""
            TextBox1.Text = TextBox1.Text + sender.text
            Label1.Text = TextBox1.Text
            If signe = "*" Then
                Label1.Text = opération * TextBox1.Text
            ElseIf signe = "/" Then
                Label1.Text = opération / TextBox1.Text
            ElseIf signe = "+" Then
                Label1.Text = opération + TextBox1.Text
            ElseIf signe = "-" Then
                Label1.Text = opération - TextBox1.Text
            End If
        End Sub
     
        Private Sub bt1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt1.Click
            If TextBox1.Text = "0" Then TextBox1.Text = ""
            TextBox1.Text = TextBox1.Text + sender.text
            Label1.Text = TextBox1.Text
            If signe = "*" Then
                Label1.Text = opération * TextBox1.Text
            ElseIf signe = "/" Then
                Label1.Text = opération / TextBox1.Text
            ElseIf signe = "+" Then
                Label1.Text = opération + TextBox1.Text
            ElseIf signe = "-" Then
                Label1.Text = opération - TextBox1.Text
            End If
        End Sub
     
        Private Sub bt2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt2.Click
            If TextBox1.Text = "0" Then TextBox1.Text = ""
            TextBox1.Text = TextBox1.Text + sender.text
            Label1.Text = TextBox1.Text
            If signe = "*" Then
                Label1.Text = opération * TextBox1.Text
            ElseIf signe = "/" Then
                Label1.Text = opération / TextBox1.Text
            ElseIf signe = "+" Then
                Label1.Text = opération + TextBox1.Text
            ElseIf signe = "-" Then
                Label1.Text = opération - TextBox1.Text
            End If
        End Sub
     
        Private Sub bt3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt3.Click
            If TextBox1.Text = "0" Then TextBox1.Text = ""
            TextBox1.Text = TextBox1.Text + sender.text
            Label1.Text = TextBox1.Text
            If signe = "*" Then
                Label1.Text = opération * TextBox1.Text
            ElseIf signe = "/" Then
                Label1.Text = opération / TextBox1.Text
            ElseIf signe = "+" Then
                Label1.Text = opération + TextBox1.Text
            ElseIf signe = "-" Then
                Label1.Text = opération - TextBox1.Text
            End If
        End Sub
     
        Private Sub bt4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt4.Click
            If TextBox1.Text = "0" Then TextBox1.Text = ""
            TextBox1.Text = TextBox1.Text + sender.text
            Label1.Text = TextBox1.Text
            If signe = "*" Then
                Label1.Text = opération * TextBox1.Text
            ElseIf signe = "/" Then
                Label1.Text = opération / TextBox1.Text
            ElseIf signe = "+" Then
                Label1.Text = opération + TextBox1.Text
            ElseIf signe = "-" Then
                Label1.Text = opération - TextBox1.Text
            End If
        End Sub
     
        Private Sub bt5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt5.Click
            If TextBox1.Text = "0" Then TextBox1.Text = ""
            TextBox1.Text = TextBox1.Text + sender.text
            Label1.Text = TextBox1.Text
            If signe = "*" Then
                Label1.Text = opération * TextBox1.Text
            ElseIf signe = "/" Then
                Label1.Text = opération / TextBox1.Text
            ElseIf signe = "+" Then
                Label1.Text = opération + TextBox1.Text
            ElseIf signe = "-" Then
                Label1.Text = opération - TextBox1.Text
            End If
        End Sub
     
        Private Sub bt6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt6.Click
            If TextBox1.Text = "0" Then TextBox1.Text = ""
            TextBox1.Text = TextBox1.Text + sender.text
            Label1.Text = TextBox1.Text
            If signe = "*" Then
                Label1.Text = opération * TextBox1.Text
            ElseIf signe = "/" Then
                Label1.Text = opération / TextBox1.Text
            ElseIf signe = "+" Then
                Label1.Text = opération + TextBox1.Text
            ElseIf signe = "-" Then
                Label1.Text = opération - TextBox1.Text
            End If
        End Sub
     
        Private Sub bt7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt7.Click
            If TextBox1.Text = "0" Then TextBox1.Text = ""
            TextBox1.Text = TextBox1.Text + sender.text
            Label1.Text = TextBox1.Text
            If signe = "*" Then
                Label1.Text = opération * TextBox1.Text
            ElseIf signe = "/" Then
                Label1.Text = opération / TextBox1.Text
            ElseIf signe = "+" Then
                Label1.Text = opération + TextBox1.Text
            ElseIf signe = "-" Then
                Label1.Text = opération - TextBox1.Text
            End If
        End Sub
     
        Private Sub bt8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt8.Click
            If TextBox1.Text = "0" Then TextBox1.Text = ""
            TextBox1.Text = TextBox1.Text + sender.text
            Label1.Text = TextBox1.Text
            If signe = "*" Then
                Label1.Text = opération * TextBox1.Text
            ElseIf signe = "/" Then
                Label1.Text = opération / TextBox1.Text
            ElseIf signe = "+" Then
                Label1.Text = opération + TextBox1.Text
            ElseIf signe = "-" Then
                Label1.Text = opération - TextBox1.Text
            End If
        End Sub
     
        Private Sub bt9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt9.Click
            If TextBox1.Text = "0" Then TextBox1.Text = ""
            TextBox1.Text = TextBox1.Text + sender.text
            Label1.Text = TextBox1.Text
            If signe = "*" Then
                Label1.Text = opération * TextBox1.Text
            ElseIf signe = "/" Then
                Label1.Text = opération / TextBox1.Text
            ElseIf signe = "+" Then
                Label1.Text = opération + TextBox1.Text
            ElseIf signe = "-" Then
                Label1.Text = opération - TextBox1.Text
            End If
        End Sub
     
        Private Sub btmult_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btmult.Click
            opération = Label1.Text
            signe = sender.text
            TextBox1.Text = "0"
            If signe = "*" Then
                Label1.Text = opération * TextBox1.Text
            ElseIf signe = "/" Then
                Label1.Text = opération / TextBox1.Text
            ElseIf signe = "+" Then
                Label1.Text = opération + TextBox1.Text
            ElseIf signe = "-" Then
                Label1.Text = opération - TextBox1.Text
            End If
        End Sub
     
        Private Sub btdiv_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btdiv.Click
            opération = Label1.Text
            signe = sender.text
            TextBox1.Text = "0"
            If signe = "*" Then
                Label1.Text = opération * TextBox1.Text
            ElseIf signe = "/" Then
                Label1.Text = opération / TextBox1.Text
            ElseIf signe = "+" Then
                Label1.Text = opération + TextBox1.Text
            ElseIf signe = "-" Then
                Label1.Text = opération - TextBox1.Text
            End If
        End Sub
     
        Private Sub btmoins_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btmoins.Click
            opération = Label1.Text
            signe = sender.text
            TextBox1.Text = "0"
            If signe = "*" Then
                Label1.Text = opération * TextBox1.Text
            ElseIf signe = "/" Then
                Label1.Text = opération / TextBox1.Text
            ElseIf signe = "+" Then
                Label1.Text = opération + TextBox1.Text
            ElseIf signe = "-" Then
                Label1.Text = opération - TextBox1.Text
            End If
        End Sub
     
        Private Sub btplus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btplus.Click
            opération = Label1.Text
            signe = sender.text
            TextBox1.Text = "0"
            If signe = "*" Then
                Label1.Text = opération * TextBox1.Text
            ElseIf signe = "/" Then
                Label1.Text = opération / TextBox1.Text
            ElseIf signe = "+" Then
                Label1.Text = opération + TextBox1.Text
            ElseIf signe = "-" Then
                Label1.Text = opération - TextBox1.Text
            End If
        End Sub
     
        Private Sub btc_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btc.Click
            TextBox1.Text = 0
            Label1.Text = 0
            opération = "0"
            signe = "0"
        End Sub
    End Class
    J'ai réussi à réduire tout ca comme ceci, ce qui est déjà un gros pas en avant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Public Class Form1
        Dim opération As Double
        Dim signe As Char
        Private Sub nombre(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt0.Click, bt1.Click, bt2.Click, bt3.Click, bt4.Click, bt5.Click, bt6.Click, bt7.Click, bt8.Click, bt9.Click
            If TextBox1.Text = "0" Then TextBox1.Text = ""
            TextBox1.Text = TextBox1.Text + sender.text
            Label1.Text = TextBox1.Text
            If signe = "*" Then
                Label1.Text = opération * TextBox1.Text
            ElseIf signe = "/" Then
                Label1.Text = opération / TextBox1.Text
            ElseIf signe = "+" Then
                Label1.Text = opération + TextBox1.Text
            ElseIf signe = "-" Then
                Label1.Text = opération - TextBox1.Text
            End If
        End Sub
     
        Private Sub calculer(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btmult.Click, btdiv.Click, btmoins.Click, btplus.Click
            opération = Label1.Text
            signe = sender.text
            TextBox1.Text = "0"
            If signe = "*" Then
                Label1.Text = opération * TextBox1.Text
            ElseIf signe = "/" Then
                Label1.Text = opération / TextBox1.Text
            ElseIf signe = "+" Then
                Label1.Text = opération + TextBox1.Text
            ElseIf signe = "-" Then
                Label1.Text = opération - TextBox1.Text
            End If
        End Sub
     
        Private Sub btc_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btc.Click
            TextBox1.Text = 0
            Label1.Text = 0
            opération = "0"
            signe = "0"
        End Sub
    End Class
    Ca marche plutôt bien, à chaque fois que je clique sur un chiffre le label se met à jour automatiquement, pas besoin du signe =
    Le problème c'est que je ne vois pas comment rajouter le fait que chaque boutton, en plus de rajouter leur valeur à la textbox, puisse faire autre chose qui lui est propre.

  5. #5
    Candidat au Club
    Homme Profil pro
    Sans emploi
    Inscrit en
    décembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Sans emploi

    Informations forums :
    Inscription : décembre 2017
    Messages : 4
    Points : 2
    Points
    2

    Par défaut

    Bon et bien je pense avoir trouvé, il suffisait juste de donner d'autres ordres aux boutons tout simplement.
    Un ordre général pour tous les boutons et ensuite des ordres spécifique pour chaque bouton.

    Ce n'est pas du tout comme tu me l'a suggéré mais ca m'a lancé sur les bonnes pistes de recherche, merci bien!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
      Private Sub nombre(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt0.Click, bt1.Click, bt2.Click, bt3.Click, bt4.Click, bt5.Click, bt6.Click, bt7.Click, bt8.Click, bt9.Click
            If TextBox1.Text = "0" Then TextBox1.Text = ""
            TextBox1.Text = TextBox1.Text + sender.text
            Label1.Text = TextBox1.Text
            If signe = "*" Then
                Label1.Text = opération * TextBox1.Text
            ElseIf signe = "/" Then
                Label1.Text = opération / TextBox1.Text
            ElseIf signe = "+" Then
                Label1.Text = opération + TextBox1.Text
            ElseIf signe = "-" Then
                Label1.Text = opération - TextBox1.Text
            End If
        End Sub
        Private Sub bt1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt1.Click
            Label2.Text = "A"
        End Sub
        Private Sub bt2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt2.Click
            Label3.Text = "B"
        End Sub
        Private Sub bt3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt3.Click
            Label4.Text = "C"
        End Sub
        Private Sub bt4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt4.Click
            Label5.Text = "D"
        End Sub
        Private Sub bt5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt5.Click
            Label6.Text = "E"
        End Sub
        Private Sub bt6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt6.Click
            Label7.Text = "F"
        End Sub
        Private Sub bt7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt7.Click
            Label8.Text = "G"
        End Sub
        Private Sub bt8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt8.Click
            Label9.Text = "H"
        End Sub
        Private Sub bt9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt9.Click
            Label2.Text = "I"
        End Sub
    Nom : 2017-12-14 (2).png
Affichages : 30
Taille : 3,7 Ko

    PS:
    Je le met en résolu, merci!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. gestion plusieurs boutons dans une seule image
    Par bouchra19 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 15/05/2012, 14h33
  2. [Toutes versions] Plusieurs boutons une seule macro
    Par JOLS40 dans le forum VBA Access
    Réponses: 1
    Dernier message: 15/07/2010, 12h49
  3. Comment utiliser plusieurs boutons submit dans un seul formulaire ?
    Par Alexandrebox dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/06/2009, 19h27
  4. Gérer le click de plusieurs boutons en une seule procédure
    Par OhMonBato dans le forum Windows Forms
    Réponses: 12
    Dernier message: 20/03/2008, 18h32
  5. Plusieurs boutons dans un seul formulaire
    Par rimeh dans le forum Formulaires
    Réponses: 3
    Dernier message: 29/01/2007, 13h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo