Bonsoir à tous,
J'ai voulu montrer à des collègues l'utilité de la fonction "evaluate", je me suis donc amusé à coder une calculatrice l'utilisant. Je rencontre un problème que je n'arrive pas à comprendre. Chaque bouton est codé de la même manière, à savoir :
Autre exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Private Sub Cmd_1_Click() If Me.Txt_Calcul = 0 Then Me.Txt_Calcul = Me.Cmd_1.Caption Else Me.Txt_Calcul = Me.Txt_Calcul + Me.Cmd_1.Caption End If End Sub
C'est exactement pareil pour tous les boutons de 1 à 9. J'ai ensuite codé le bouton "=" de sorte à ce qu'il calcul un résultat à partir des informations présentes dans une textbox. Voici le code du bouton "=" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 Private Sub Cmd_6_Click() If Me.Txt_Calcul = 0 Then Me.Txt_Calcul = Me.Cmd_6.Caption Else Me.Txt_Calcul = Me.Txt_Calcul + Me.Cmd_6.Caption End If End Sub
Si je veux rentrer tout simplement un chiffre pour voir s'il me l'affiche bien par la suite, par exemple juste rentrer "6" puis "=", tout marche. Si en revanche je m'amuse à le faire pour les chiffres "1" ou "2" (donc simplement faire "1" puis "=" ou "2" puis "=") cela ne marche pas. Il me dit que "Propriété ou méthode non gérée par cet objet". Tous les autres je n'ai aucun problème, si je fais la même manipulation pour 3,4,5,6,7,8,9 cela marche parfaitement mais 1 ou 2 non. J'ai déjà essayé de copier coller le bouton 6 pour reparamétrer le 1 dessus, me disant que j'avais peut être changé quelque chose sans le vouloir, mais ça n'y change rien.
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 Private Sub Cmd_Calc_Click() Dim derlig As Integer derlig = Feuil1.Cells(Rows.Count, 1).End(xlUp).Row + 1 If Txt_Calcul = "" Then Exit Sub Else On Error GoTo ErrHandler Lbl_Resultat = Format(Evaluate(Txt_Calcul.Text), "0.0000") LST_Histo.AddItem Me.Txt_Calcul.Value Feuil1.Range("A" & derlig).Value = Txt_Calcul Feuil1.Range("B" & derlig).Value = Val(Lbl_Resultat) Txt_Calcul = "" Exit Sub End If ErrHandler: MsgBox "Une erreur s'est produite : " & Err.Description End Sub
Je peux transmettre mon fichier si les éléments présentés ne suffisent pas.
En vous remerciant par avance.
Cordialement,
Partager