• Initiateur de la discussion Initiateur de la discussion Lone-wolf
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Re : Calculatrice en VBA

Bonsoir job,

merci pour cette information. Mais... mise à part les multimiliardaires, moi pauvre employé sans travail 🙁 , je me vois mal inserer autant de chiffres. Seulement à les regarder, j'ai la tête qui tourne 🙁 😉

Bonne nuit

Lone-wolf
 
Re : Calculatrice en VBA

Bonjour Lone-wolf, le forum,

Chez moi (Excel 2013) je constate un phénomène bizarre sur le fichier de mon post #10.

Le clic sur 1 puis sur = provoque un bug sur la ligne :

Code:
t = Replace(CStr(Evaluate(t)), ",", ".")
On vérifiera par ailleurs que l'instruction MsgBox Evaluate("1") beugue.

Il n'y a pas de problème avec les autres nombres 0 2 3 4...

J'ai trouvé que cela provient du CommandButton sur la feuille : si on le supprime, et qu'on le remplace par un autre il n'y a plus de problème.

Qu'est-ce qu'il avait donc mon bouton ???

A+
 
Re : Calculatrice en VBA

Re,

Avec ce fichier le fonctionnement de la calculatrice est classique :

Code:
Private Sub CB_Click()
Dim cbc$, t$
cbc = CB.Caption
t = Calculatrice.txtResultat
If cbc = "CE" Then f = 0: t = 0: GoTo 1
If cbc = "C" Then t = IIf(Len(t) = 1, 0, Left(t, Len(t) - 1)): f = t: GoTo 1
If IsNumeric(cbc) Then
  If f = "0" Or f Like "*=" Or Not f Like "*#" And Not f Like "*." Then
    t = cbc
    If f Like "*=" Then f = ""
  Else
    t = t & cbc
  End If
Else
  If Not f Like "*#" Then f = Left(f, Len(f) - 1)
  If cbc = "." Then
    If t Like "*." Then t = Left(t, Len(t) - 1)
    If InStr(t, ".") Then Exit Sub
    t = t & "."
  Else
    If cbc = "%" Then f = f & "%": cbc = ""
    f = Replace(CStr(Evaluate("=" & f)), ",", ".")
    t = IIf(f Like "E*", "E", f)
    If t = "E" Then f = 0
  End If
End If
f = f & cbc
1 Calculatrice.txtResultat = t
End Sub
La variable f est déclarée Public et réinitialisée dans Module1.

PS : j'ai changé le CommandButton 🙄

Edit 1 : y en a marre, ça recommence avec le chiffre "2" cette fois, j'ai remplacé par un bouton de formulaire.

Edit 2 : re-marre, ça continue avec "3", alors j'ai mis :

Code:
f = Replace(CStr(Evaluate("=" & f)), ",", ".")
A+
 

Pièces jointes

Dernière édition:
Re : Calculatrice en VBA

bonsoir Job75😎lone_wolf😎laetitia😎madagascar 😎et le forum

job75 tu dits avoir bataillé dans le post 19 et je te crois bien mais il reste un défaut, il faut cliqué plusieurs fois sur C pour remettre a zéro l'affichage

ras autrement parfait pour tous😎
 
Re : Calculatrice en VBA

re tous 🙂🙂🙂

grisan29 🙂 pour remettre a zero tu as le bouton CE non???

Lone-wolf 🙂 15.25+15.25 =30.5 non ???

15.25+15.26 =30.51 suffisant a mon avis

je profite pour saluer le travail de l'ami JOB 🙂🙂🙂🙂
j'aurai pas fait plus simple avec une classe bravo🙂🙂🙂🙂🙂

oups!!!!!!!!!! job on viens de se croiser 🙂
 
Re : Calculatrice en VBA

Re, bonsoir Laetitia 🙂

Cela dit la remarque de grisan29 m'a mis sur la voie d'une amélioration pour le bouton C :

Code:
Private Sub CB_Click()
Dim cbc$, t$
cbc = CB.Caption
t = Calculatrice.txtResultat
If cbc = "CE" Then f = 0: t = 0: GoTo 1
If cbc = "C" Then
  t = IIf(Len(t) = 1, 0, Left(t, Len(t) - 1))
  If Not f Like "*#" And Not f Like "*." Then _
    f = IIf(Len(f) = 1, 0, Left(f, Len(f) - 1))
  f = IIf(Len(f) = 1, 0, Left(f, Len(f) - 1))
  GoTo 1
End If
If IsNumeric(cbc) Then
  If f = "0" Or f Like "*=" Or Not f Like "*#" And Not f Like "*." Then
    t = cbc
    If f Like "*=" Then f = ""
  Else
    t = t & cbc
  End If
Else
  If Not f Like "*#" Then f = Left(f, Len(f) - 1)
  If cbc = "." Then
    If t Like "*." Then t = Left(t, Len(t) - 1)
    If InStr(t, ".") Then Exit Sub
    t = t & "."
  Else
    If cbc = "%" Then f = f & "%": cbc = ""
    f = Replace(CStr(Evaluate("=" & f)), ",", ".")
    t = IIf(f Like "E*", "E", f)
    If t = "E" Then f = 0
  End If
End If
f = f & cbc
1 Calculatrice.txtResultat = t
End Sub
Fichier (2).

A+
 

Pièces jointes

Re : Calculatrice en VBA

Re à tous,

Pour les difficiles 😛 voici la solution à mettre aprés 1 Calculatrice.txtResultat = t, si on a ajouter un Label pour le résultat.

If Calculatrice.txtResultat > 10 Then Calculatrice.Label1.Caption = Format(Calculatrice.Label1.Caption, "0.00")


En PJ calculatrice sans label.



A+ 😎
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
198
Réponses
8
Affichages
610
Réponses
15
Affichages
416
Réponses
3
Affichages
131
Réponses
4
Affichages
531
Retour