Calculatrice VBA

Fermé
quentiningwiler Messages postés 6 Date d'inscription dimanche 5 juin 2016 Statut Membre Dernière intervention 2 avril 2017 - Modifié par quentiningwiler le 5/06/2016 à 23:44
quentiningwiler Messages postés 6 Date d'inscription dimanche 5 juin 2016 Statut Membre Dernière intervention 2 avril 2017 - 6 juin 2016 à 13:13
Bonsoir à tous,

Je viens vers vous étant donné que je suis bloqué dans ma macro sur VBA.
Alors je cherche à faire une calculatrice qui peut effectuer les 4 opérations fondamentale qu'il afficher quand on clique sur calculer, qui émet un message d'erreur qu'on effectue une division par 0, qui garde en mémoire les résultat à partir par exemple de la cellule A1. Je suis encore novice vous trouverez ci-joint le document excel avec son vba

https://www.cjoint.com/c/FFfvSmlAciT
A voir également:

1 réponse

via55 Messages postés 14419 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 27 mai 2024 2 707
Modifié par via55 le 6/06/2016 à 01:24
Bonsoir

La macro associée au bouton calculer doit être quelque chose comme ça :
Private Sub CommandButton4_Click()
    If Me.TextBox4.Value = "" Then MsgBox "Entrez le premier chiffre": Exit Sub
   
    If Me.TextBox3.Value = "" Then MsgBox "Entrez le second chiffre": Exit Sub: Exit Sub
 
    If Me.ComboBox1.Value = "" Then MsgBox "Choisir l'opérateur (+, -, *, /)": Exit Sub
    
    Select Case ComboBox1
    Case "+"
        resultat = Val(Me.TextBox4.Value) + Val(Me.TextBox3.Value)
    Case "-"
        resultat = val(Me.TextBox4.Value) - val(Me.TextBox3.Value)
    Case "*"
        resultat = val(Me.TextBox4.Value) * val(Me.TextBox3.Value)
    Case "/"
    If Me.TextBox3.Value = 0 Then
    MsgBox "Division par 0 impossible"
    Exit Sub
    End If
            resultat = val(Me.TextBox4.Value) / val(Me.TextBox3.Value)
    Case Else
    
        MsgBox "Erreur dans la saisie de l'opérateur"

        Exit Sub
    End Select
    MsgBox ("Le résultat est : " & resultat)
End Sub


-Tu n'avais pas le bon nom comme Private sub
-Tu avais au début 3 IF et un seul End iF ( on peut se passer de 3 End If en mettant les instructions IF ... THEN .... sur la meme ligne)
- select case operateur ne renvoyait à rien car operateur n'est le nom d'aucun contrôle, le contrôle correspondant étant nommé Combobox1 (par contre si dans les propriétés de ce comboxbox tu changes son Name pour operateur alors la oui tu dois écrire Select case operateur)
- il faut convertir les résultats des textbox en valeur numériques avec Val pour effectuer les calculs

2) A quoi sert ton textbox5 ??

3) Au lieu d'avoir un combobox pour le choix de l'opérateur ce serait plus sympa d'avoir 4 boutons avec les 4 signes opératoires et un bouton avec = qui remplacerait le bouton calculer

Cdlmnt
Via

"L'imagination est plus importante que le savoir."    A. Einstein
2
quentiningwiler Messages postés 6 Date d'inscription dimanche 5 juin 2016 Statut Membre Dernière intervention 2 avril 2017
6 juin 2016 à 12:09
Bonjour,

Je te remercie déjà pour ta réponse rapide. Aussi, j'ai bien compris. Le faite de choisir l'opérateur sous la forme d'une combobox m'est imposé. Ensuite, étant donné que je ne réussi pas à calculer est afficher le résultat directement dans la case textbox5 j'ai fait apparaître un message. Sais-tu comment garder en mémoire les résultats obtenu.

Cordialement,

Quentin
0
via55 Messages postés 14419 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 27 mai 2024 2 707 > quentiningwiler Messages postés 6 Date d'inscription dimanche 5 juin 2016 Statut Membre Dernière intervention 2 avril 2017
6 juin 2016 à 12:44
Bonjour,

1) Pour afficher le résultat dans le texbox5 au lieu de la ligne avec le msgbox tu mets simplement
Textbox5=resultat

2) Pour garder les résultats dans la colonne A, à la fin de la macro précédente tu rajouets ces lignes :
n = Application.WorksheetFunction.CountA(Range("A:A"))' NBVAL dans col A
range("A" & n+1)=resultat

Cdlmnt
Via
0
quentiningwiler Messages postés 6 Date d'inscription dimanche 5 juin 2016 Statut Membre Dernière intervention 2 avril 2017 > via55 Messages postés 14419 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 27 mai 2024
6 juin 2016 à 13:13
Niquel, ça fonctionne à merveille je te remercie encore.

Et passe une bonne journée
0