Calculatrice VBA

quentiningwiler Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
quentiningwiler Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -
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

1 réponse

  1. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    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
    1. quentiningwiler Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
       
      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
      1. via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention   2 759 > quentiningwiler Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
         
        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
      2. quentiningwiler Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   > via55 Messages postés 14391 Date d'inscription   Statut Membre Dernière intervention  
         
        Niquel, ça fonctionne à merveille je te remercie encore.

        Et passe une bonne journée
        0