Problème avec la fonction "Evaluate"
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 :
Code:
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 |
Autre exemple :
Code:
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 |
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:
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 |
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.
Je peux transmettre mon fichier si les éléments présentés ne suffisent pas.
En vous remerciant par avance.
Cordialement,