Erreur de compilation

Bonjour,

J'ai écrit un petit programme excel VBA pour résoudre de équations du du second degré mais lorsque j'essaie de le lancer le message suivant s'affiche:

sub

la première ligne du code est surlignée en jaune et un mot est mis en surbrillance.

quelqu'un a il une solution?

D'avance merci.

Salut PierreGouez,

pas matheux pour un sou...

Vérifie la cohérence des résultats!

x1 = -(Range("D1") - Sqr(delta)) / 2 * Range("A1")

x2 = -(Range("D1") + Sqr(delta)) / 2 * Range("A1")

A+

Salut à toi l'ami,

Ton problème fondamental réside principalement dans la syntaxe, donc après quelques faibles corrections ton programme peut fonctionner. Cependant il est loin d'être correct, tout d'abord en VBA les cellules des feuilles de tes classeurs ne sont pas des endroits où stocker une variable, donc pour manipuler des nombres tu les places dans une variable avec un nom assez explicite et tu attribues la valeur de la cellule à ta variable. Celà permet à ton code d'être plus explicite et plus simple à relire. Ensuite il est fortement conseillé d'éviter les instructions / variables inutiles, un code épuré au maximum diminuera grandement ton risque d'erreur et te permettra de réaliser des choses de plus en plus complexe

Je t'ai donc joint un fichier entièrement fonctionnelle je te laisse regarder par toi même et comparer avec le code que tu avais écris

Ah et j'ai aussi rajouté 2 formules directement à coté de tes cases de résultat donnant la même chose mais sans macro À toi donc de voir si la macro est vraiment nécessaire ou non

Cordialement,

6pierregouez.xlsm (18.92 Ko)

Bonjour,

Une autre proposition.

Cdlt.

Public Sub Programm()
Dim Delta As Double
Dim a As Long, b As Long, c As Long
Dim x0 As Double, x1 As Double, x2 As Double

    With ActiveSheet
        a = .Cells(1).Value
        b = .Cells(4).Value
        c = .Cells(7).Value
        Delta = b ^ 2 - 4 * a * c
        If Delta < 0 Then
            MsgBox "Delta est négatif. Opération impossible à réaliser"
        ElseIf Delta = 0 Then
            x0 = -b / (2 * a)
        Else
            x1 = (-b - VBA.Sqr(Delta)) / (2 * a)
            x2 = (-b + VBA.Sqr(Delta)) / (2 * a)
        End If
        .Cells(8, 13).Value = x0
        .Cells(9, 13).Value = x1
        .Cells(10, 13).Value = x2
    End With

End Sub

Super merci à tous !!

A+

Rechercher des sujets similaires à "erreur compilation"