Problème programmation VBA

Problème programmation VBA - VB/VBA/VBS - Programmation

Marsh Posté le 28-09-2013 à 14:32:11    

Bonjour à tous,
Je suis tout débutant en programmation, et j'ai voulu créer un programme qui puisse résoudre une équation du second degré, avec la formule de viète. Mais je ne sais pas trop pourquoi, il m'indique une erreur à la ligne: TextBox4 = (-b + Math.Sqrt(d)) / (2 * a)
Et je ne comprend pas bien mon erreur! Voici le code...
 
 
Public Class Form1
    Dim a = Val(TextBox1), b = Val(TextBox2), c = Val(TextBox3), d As New Double
 
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 
        d = (b ^ 2) - (4 * a * c)
        If d >= 0 Then
            TextBox4 = (-b + Math.Sqrt(d)) / (2 * a)
            TextBox5 = (-b - Math.Sqrt(d)) / (2 * a)
        Else
            TextBox4.Text = "Error"
        End If
    End Sub
 
 
Merci à tous! :)

Reply

Marsh Posté le 28-09-2013 à 14:32:11   

Reply

Marsh Posté le 28-09-2013 à 16:41:23    

 
           Bonjour,
 
           tu sais pourquoi rien qu'en lisant le message d'erreur ! …   :sarcastic:  
 

Reply

Marsh Posté le 28-09-2013 à 16:53:29    

Normalement oui, mais là, il me met ce message la...
L'exception InvalidCastException n'a pas été gérée
Impossible d'effectuer un cast d'un objet de type 'System.Double' en type 'System.Windows.Forms.TextBox'.

Reply

Marsh Posté le 28-09-2013 à 17:00:49    

 
           Effectivement, nous n'avons pas le même message.
 
           Recopier la ligne posant problème dans un quelconque évènement clic du module de l'Userform en question
           puis relancer la compilation afin de vérifier s'il y a toujours un message d'erreur et devant être bien plus explicite …
 

Reply

Marsh Posté le 28-09-2013 à 17:09:47    

Essayé mais le message d'erreur reste le même...

Reply

Marsh Posté le 28-09-2013 à 17:13:03    

 
           Normal si tu n'as pas effacé le code d'origine …
 

Reply

Marsh Posté le 28-09-2013 à 17:19:00    

J'ai beau l'effacer, rien ne bouge...

Reply

Marsh Posté le 28-09-2013 à 17:22:01    

 
           Pour moi il y a une erreur de frappe, quand tu tapes  Math.  tu vois la liste des membres de cette bibliothèque …
 
           Mais le message d'erreur ne correspondant pas, je ne vois pas !
 
           Du reste normalement je n'ai pas besoin de préciser  Math.  dans mes versions d'Excel …
 


---------------
                Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !                             Liste des accus FAD !
Reply

Marsh Posté le 28-09-2013 à 17:27:18    

J'ai essayé d'enlever le Math, et même d'enlever la racine mais le message d'erreur reste le même... Plutôt pénible!

Reply

Marsh Posté le 28-09-2013 à 17:50:21    

 
           Oui mais au moins as-tu vu ta fote d'ortografe ?  :pt1cable:  
           As-tu vérifié les membres de la bibliothèque  Math  ? …
 

Reply

Marsh Posté le 28-09-2013 à 17:50:21   

Reply

Marsh Posté le 28-09-2013 à 17:56:12    

Bonjour !
 
Euh ... Ce n'est pas plutôt qu'il faudrait remplacer la ligne par  
 
TextBox4.Text = ToString((-b + Math.Sqrt(d)) / (2 * a)) ?
 
En remplaçant bien sûr "ToString" par la fonction correspondante en VBA (que je ne connais pas du tout, mais l'erreur telle que reportée semble orienter vers cette voie)
 
Bonne continuation !
 
 
 
 
Edit : ajout de la parenthèse manquante :)


Message édité par Farian le 28-09-2013 à 17:58:26
Reply

Marsh Posté le 29-09-2013 à 15:07:48    

Marc L, nan j'ai fait une faute??

Reply

Marsh Posté le 29-09-2013 à 15:57:13    

 
           Dans ma version  Sqrt  n'existe pas, d'où ma question de vérifier son existence dans la bibliotèque  Math  …
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed