Bonjour à tous,

Je developpe une appli winFom pour estimer une facture EDF. J'ai une base de données qui recense les type d'abonnement et leur montant annuel.

L'utilisateur utilise un combo box pour sélection le type d'abo et le montant annuel apparait dans un label.

Ensuite j'ai un deuxième comboBox avec le nombre de mois ( de 1 a 12 ).

Si l'utilisateur décide que son estimation porte sur 3 mois il sélectionne 3 mois et le label s'actualiser automatiquement avec le bon résultat.

En revanche si l'utilisateur c'est trompé et que finalement il ne veut plus estimer sur 3 moi mais sur 6 par exemple, le calcule ce fait par rapport a la valeur de l'abonnement a 3 mois et non plus a un ans.

En gros a chaque changement de données dans le comboBox mois, le calcule ce fait sur la dernière valeur du label.

Voici mon code pour le calcule de l'abo en fonction du nombre de mois :


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
Private Sub ComboBox1_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles ComboBox_mois.SelectedIndexChanged
 
 
        If Me.Label_mt_abo.Text = Nothing Then
            MsgBox("N'oublier pas de selectionner une puissance de compteur et un type d'abonnement ", MsgBoxStyle.OkOnly)
        Else
            'resulat arrondi a 2 decimal
            Select Case Me.ComboBox_mois.SelectedIndex
 
                Case 0
                    'resultat pour un mois par rapport au montant abonnement annuel
                    Me.Label_mt_abo.Text = Math.Round(CDbl(Me.Label_mt_abo.Text / 12), 2)
                Case 1
                    'pour 2 mois
                    Me.Label_mt_abo.Text = Math.Round(CDbl((Me.Label_mt_abo.Text / 12) * 2), 2)
                Case 2
                    'pour 3 mois ....
                    Me.Label_mt_abo.Text = Math.Round(CDbl((Me.Label_mt_abo.Text / 12) * 3), 2)
                Case 3
                    Me.Label_mt_abo.Text = Math.Round(CDbl((Me.Label_mt_abo.Text / 12) * 4), 2)
                Case 4
                    Me.Label_mt_abo.Text = Math.Round(CDbl((Me.Label_mt_abo.Text / 12) * 5), 2)
                Case 5
                    Me.Label_mt_abo.Text = Math.Round(CDbl((Me.Label_mt_abo.Text / 12) * 6), 2)
                Case 6
                    Me.Label_mt_abo.Text = Math.Round(CDbl((Me.Label_mt_abo.Text / 12) * 7), 2)
                Case 7
                    Me.Label_mt_abo.Text = Math.Round(CDbl((Me.Label_mt_abo.Text / 12) * 8), 2)
                Case 8
                    Me.Label_mt_abo.Text = Math.Round(CDbl((Me.Label_mt_abo.Text / 12) * 9), 2)
                Case 9
                    Me.Label_mt_abo.Text = Math.Round(CDbl((Me.Label_mt_abo.Text / 12) * 10), 2)
                Case 10
                    Me.Label_mt_abo.Text = Math.Round(CDbl((Me.Label_mt_abo.Text / 12) * 11), 2)
                Case 11
                    Me.Label_mt_abo.Text = Math.Round(CDbl(Me.Label_mt_abo.Text), 2)
            End Select
        End If
 
 
 
    End Sub
Comment doit je faire pour que mon label garde ca valeur initial ?

Merci a vous,

cdl

Jerome