Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Calculatrice en VBA

Lone-wolf

XLDnaute Barbatruc
Bonjour à tous,

j'ai adapté le code pour mon formulaire, mais il me manque le code pour le pourcentage.

Roger, JNP si vous êtes là... au secours!!
 

Pièces jointes

  • Calculatrice.xls
    44.5 KB · Affichages: 1 017
  • Calculatrice.xls
    44.5 KB · Affichages: 1 113
  • Calculatrice.xls
    44.5 KB · Affichages: 1 123

Lone-wolf

XLDnaute Barbatruc
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
 

job75

XLDnaute Barbatruc
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+
 

job75

XLDnaute Barbatruc
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

  • Calculatrice de poche(1).xls
    53.5 KB · Affichages: 119
Dernière édition:

grisan29

XLDnaute Accro
Re : Calculatrice en VBA

bonsoir Job75lone_wolflaetitiamadagascar 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
 

laetitia90

XLDnaute Barbatruc
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
 

job75

XLDnaute Barbatruc
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

  • Calculatrice de poche(2).xls
    55 KB · Affichages: 43

Lone-wolf

XLDnaute Barbatruc
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

  • Calculatrice.zip
    26 KB · Affichages: 41
  • Calculatrice.zip
    26 KB · Affichages: 43
Dernière édition:
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…