IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Problème avec la fonction "Evaluate" [XL-2019]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur en centrale nucléaire
    Inscrit en
    Mai 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur en centrale nucléaire
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2014
    Messages : 14
    Par défaut Problème avec la fonction "Evaluate"
    Bonsoir à tous,

    J'ai voulu montrer à des collègues l'utilité de la fonction "evaluate", je me suis donc amusé à coder une calculatrice l'utilisant. Je rencontre un problème que je n'arrive pas à comprendre. Chaque bouton est codé de la même manière, à savoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Cmd_1_Click()
        If Me.Txt_Calcul = 0 Then
            Me.Txt_Calcul = Me.Cmd_1.Caption
        Else
            Me.Txt_Calcul = Me.Txt_Calcul + Me.Cmd_1.Caption
        End If
    End Sub
    Autre exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Cmd_6_Click()
        If Me.Txt_Calcul = 0 Then
            Me.Txt_Calcul = Me.Cmd_6.Caption
        Else
            Me.Txt_Calcul = Me.Txt_Calcul + Me.Cmd_6.Caption
        End If
    End Sub
    C'est exactement pareil pour tous les boutons de 1 à 9. J'ai ensuite codé le bouton "=" de sorte à ce qu'il calcul un résultat à partir des informations présentes dans une textbox. Voici le code du bouton "=" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Private Sub Cmd_Calc_Click()
        Dim derlig As Integer
        derlig = Feuil1.Cells(Rows.Count, 1).End(xlUp).Row + 1
        If Txt_Calcul = "" Then
            Exit Sub
        Else
            On Error GoTo ErrHandler
                Lbl_Resultat = Format(Evaluate(Txt_Calcul.Text), "0.0000")
                LST_Histo.AddItem Me.Txt_Calcul.Value
                Feuil1.Range("A" & derlig).Value = Txt_Calcul
                Feuil1.Range("B" & derlig).Value = Val(Lbl_Resultat)
                Txt_Calcul = ""
            Exit Sub
        End If
     
    ErrHandler:
    MsgBox "Une erreur s'est produite : " & Err.Description
    End Sub
    Si je veux rentrer tout simplement un chiffre pour voir s'il me l'affiche bien par la suite, par exemple juste rentrer "6" puis "=", tout marche. Si en revanche je m'amuse à le faire pour les chiffres "1" ou "2" (donc simplement faire "1" puis "=" ou "2" puis "=") cela ne marche pas. Il me dit que "Propriété ou méthode non gérée par cet objet". Tous les autres je n'ai aucun problème, si je fais la même manipulation pour 3,4,5,6,7,8,9 cela marche parfaitement mais 1 ou 2 non. J'ai déjà essayé de copier coller le bouton 6 pour reparamétrer le 1 dessus, me disant que j'avais peut être changé quelque chose sans le vouloir, mais ça n'y change rien.
    Je peux transmettre mon fichier si les éléments présentés ne suffisent pas.

    En vous remerciant par avance.

    Cordialement,

  2. #2
    Membre Expert Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Par défaut
    Hello,

    Commence peut-être par supprimer tes Exit Sub et On error?
    Vu ton code actuel les Exit Sub ne servent à rien.
    Le On error, il vaut toujours mieux prévoir les erreurs possibles (valeur TxtBox non numérique , TxtBox vide,espace) ...et les vérifier en amont de la phase d'opération arithmétique.

    Relancer ton code en pas à pas, vérifier tes variables pour chaque ligne de code, tu trouveras plus facilement d'où vient le souci.

    Bat,

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    personnellement je ne vois pas l'intérêt d'un Evaluate ici.
    Cdbl(Txt_Calcul.Text) parait plus logique puisque c'est ce que tu veux.
    eric

  4. #4
    Membre Expert
    Avatar de pijaku
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 817
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Août 2010
    Messages : 1 817
    Billets dans le blog
    10
    Par défaut
    Bonjour,

    Lbl_Resultat
    Ne serait-ce pas un Label?
    Si oui, il faut indiquer sa propriété Caption :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Lbl_Resultat.Caption = Format(Evaluate(Txt_Calcul.Text), "0.0000")
    Et oui, vire ce On Error, tu en sauras davantage.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Problème avec le single quote
    Par popcorn dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 02/12/2008, 23h44
  2. [Shell] Problème avec le Back-quote (ksh)
    Par bob94700 dans le forum Linux
    Réponses: 3
    Dernier message: 27/01/2008, 12h45
  3. Sudo problème avec les simples quotes
    Par Tronche dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 23/03/2007, 12h02
  4. [MySQL] Problème avec un double quote
    Par wormseric dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 26/01/2007, 14h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo