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

ROGER2327

XLDnaute Barbatruc
Re : Calculatrice en VBA

Bonjour
Ceci, peut-être ?
Code:
[COLOR="DarkSlateGray"][B]Private Sub cmdPrc_Click()
   flagefface = 0
   If flagtf > 0 Then Call calcul
   flagtf1 = 0
   flagtf = 5
End Sub

Private Sub calcul()
   Select Case flagtf
   Case 1
      valeur1 = txtResultat.Value
      valeur = valeur + valeur1
      txtResultat.Value = valeur
   Case 2
      valeur1 = txtResultat.Value
      valeur = valeur - valeur1
      txtResultat.Value = valeur
   Case 3
      valeur1 = txtResultat.Value
      valeur = valeur * valeur1
      txtResultat.Value = valeur
   Case 4
      valeur1 = txtResultat.Value
      If valeur1 > 0 Then
         valeur = valeur / valeur1
         txtResultat.Value = valeur
      End If
   Case 5
      valeur1 = txtResultat.Value
      valeur = valeur * valeur1 / 100
      txtResultat.Value = valeur
   End Select
   flagv = 0
End Sub[/B][/COLOR]
ROGER2327
#3720


Vendredi 6 Gidouille 137 (Saint Dieu, retraité, SQ)
2 Messidor An CCXVIII
2010-W24-7T08:53:32Z
 

MADAGASCAR

XLDnaute Occasionnel
Re : Calculatrice en VBA

Bonjour Forum
Bonjour Lone-wolf
Bonjour ROGER2327
SVP j'ai essaye d'adapter cette calculatrice proposee par le cher membre Lone-wolf ..j'ai ajouté le code du pourcentage du cher membre ROGER2327 ..
SVP si vous pouvez m'indiquer où est le probleme ..j'ai bien tappe ces chiffres d'une facon succesive
12 * 50 et j'ai clique sur le commandbutton du poucentage alors le resultat s'affichera 600 ..la valeur juste est bien 6
Merci beaucoup d'avance pour me corriger ce probleme
Cordialement
MAA BLACK
 

Pièces jointes

  • Calculatrice.xlsm
    22.6 KB · Affichages: 145
  • Calculatrice.xlsm
    22.6 KB · Affichages: 110

Lone-wolf

XLDnaute Barbatruc
Re : Calculatrice en VBA

Bonjour Madagascar,


Je pense avoir trouvé. Fait un test. Tu met des ' dans Case 5, ensuite copie ceci:

Code:
Private Sub cmdPrc_Click()
   flagefface = 0
   If flagtf > 0 Then: Call calcul: txtResultat.Value = txtResultat.Value / 100
   flagtf1 = 0
   flagtf = 5
End Sub

En PJ Calculatrice V2 (nouveau modèle)



A+ :cool:
 

Pièces jointes

  • Calculatrice.zip
    28.7 KB · Affichages: 125
  • Calculatrice.zip
    28.7 KB · Affichages: 139
Dernière édition:

MADAGASCAR

XLDnaute Occasionnel
Re : Calculatrice en VBA

Bnjour Lone-wolf
Merci beaucoup pour l'aide
SVP si vous pouvez m'aidez a faire ce dernier truc
Pour calculer le pourcentage j'aimerai bien faire comme ca par exemple :
12 * 50 et apres je clique CommandButton% je vais obtenir 6
Merci beaucoup d'avance pour l'aide
Cordialement
MADA
Voir svp ce lien :
https://www.excel-downloads.com/threads/resolu-calculatrice-pourcentage.20005540/
 

Lone-wolf

XLDnaute Barbatruc
Re : Calculatrice en VBA

Re,

C'est ce que fais le bouton %, il donne le résultat 6.

Prends le dernier fichier que j'ai mis et modifie

Code:
Private Sub cmdPrc_Click()
   flagefface = 0
   If flagtf > 0 Then
   Call calcul
   txtResultat.Value = txtResultat.Value / 100
   txtResultat.Value = Replace(txtResultat.Value, ",", ".")
   End If
   flagtf1 = 0
   flagtf = 5
End Sub


A+ :cool:
 

Lone-wolf

XLDnaute Barbatruc
Re : Calculatrice en VBA

RE MADAGASCAR,

Une nouvelle modification concernant les nombres comme 3.5%

Code:
Private Sub cmdPrc_Click()
   flagefface = 0
   If flagtf > 0 Then Call calcul
   If valeur > 10 Then 'exemple: 15 * 3.5%
   txtResultat.Value = valeur / 100
      txtResultat.Value = Replace(txtResultat.Value, ",", ".")
   End If
   flagtf1 = 0
   flagtf = 5
End Sub


A+ :cool:
 

MADAGASCAR

XLDnaute Occasionnel
Re : Calculatrice en VBA

Bonjour Lone-wolf
Mes excuses pour le retard de reponse
Mauvaise connexion en plus j'ai reste plus d'une heure et malheureusement j'ai pas reussi
Votre calculatrice me plait beaucoup SVP cher membre si vous pouvez me mettre ces code dans ce fichier se sera un vrai grand plaisir de votre part
Merci beaucoup d'avance pour l'aide
Cordialement
MADA
 

Pièces jointes

  • Calculatrice Lone-wolf.xlsm
    22.5 KB · Affichages: 104

job75

XLDnaute Barbatruc
Re : Calculatrice en VBA

Bonjour Lone-wolf, MADA,

Avec un Module de classe c'est quand même beaucoup plus simple.

Dans Module1 :

Code:
Dim CB() As New Classe1

Sub Ouvre()
Calculatrice.txtResultat = 0
Dim c As Control, n As Byte
For Each c In Calculatrice.Controls
  If TypeName(c) = "CommandButton" Then
    n = n + 1
    ReDim Preserve CB(1 To n)
    Set CB(n).CB = c
  End If
Next
Calculatrice.Show
End Sub
Dans le module de classe :

Code:
Public WithEvents CB As MSForms.CommandButton

Private Sub CB_Click()
Dim t$
t = Calculatrice.txtResultat
If CB.Caption = "CE" Then t = "": GoTo 1
If CB.Caption = "C" Then t = Left(t, Len(t) - 1): GoTo 1
If CB.Caption = "=" Then
  If Not t Like "*#" And Not t Like "*%" Then t = Left(t, Len(t) - 1)
  t = Replace(CStr(Evaluate(t)), ",", ".")
  If t Like "Err*" Then t = "E" 'si erreur
Else
  If t & CB.Caption Like "0#" Or t = "E" Then t = ""
  If Not IsNumeric(CB.Caption) And Not t Like "*#" And Not t Like "*%" Then Exit Sub
  t = t & CB.Caption
End If
1 If t = "" Then t = 0
Calculatrice.txtResultat = t
End Sub
La propriété Locked de la TextBox doit impérativement être à True.

Edit 1 : j'initialise la TextBox du résultat à zéro.

Edit 2 : utiliser Evaluate("=" & t) voir le post #19 avec l'histoire des boutons...

Fichier joint.

A+
 

Pièces jointes

  • Calculatrice(1).xls
    52.5 KB · Affichages: 179
Dernière édition:

Lone-wolf

XLDnaute Barbatruc
Re : Calculatrice en VBA

Bonjour à tous.

@job: oui bien sûr que c'est mieux, mais ça serait bien si on éviterais d'afficher dans la textbox 2.25+2.25.
Malheureusement je suis nul avec les modules de classe.




A+ :cool:
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Calculatrice en VBA

Re,

mais ça serait bien si on éviterais d'afficher dans la textbox 2.25+2.25.

Non c'est mieux d'afficher tout ce qu'on entre avant de cliquer sur = surtout si c'est long.

On voit ce que l'on a fait, cela diminue le risque d'erreur car on peut facilement corriger.

Bien sûr ce n'est pas ce que font les calculatrices de poche car elles ne sont pas capables d'évaluer une formule.

A+
 

Lone-wolf

XLDnaute Barbatruc
Re : Calculatrice en VBA

Re,

Non c'est mieux d'afficher tout ce qu'on entre avant de cliquer sur = surtout si c'est long


Oui je comprends. Qu'est-ce que tu veux, on est tellement habitués avec ces machines. :(

EDIT: voilà, j'ai (pour test et fun) pris l'exemple de la calculatrice Windows 10.


Code:
Private Sub txtResultat_Change()
On Error Resume Next
If Me.txtResultat.Text = "0" Then
Me.Label1.Caption = ""
Else
Me.Label1.Caption = Evaluate(Me.txtResultat.Text)
End If
End Sub



A+ :cool:
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Calculatrice en VBA

Re,

Un rappel du fonctionnement d'Excel pour les nombres.

Seuls les 15 premiers chiffres significatifs sont conservés ce qui peut donner un résultat erroné.

Par exemple le résultat de 1234567890123456-1234567890123455 est 0

Par ailleurs le résultat peut être au format scientifique, 1234567890123456 donne 1.23456789012345E+15

A+
 

Discussions similaires

Réponses
17
Affichages
476
Réponses
1
Affichages
134

Statistiques des forums

Discussions
312 534
Messages
2 089 386
Membres
104 154
dernier inscrit
Patou