Diviseur=0

Résolu
Bonjour,
j'aurais besoin de votre aide,
voici mon problème

gar= 3
var=0

gar/var = erreur d'éxécution '11' division par zéro
est ce qu'il y aurait une solution pour faire marcher mon programme même si le var = 0

merci à vous

6 réponses

  1. re

    ton code correct ... pour le compilateur

    Option Explicit
    
    Sub calculsequations()
    Dim Max As Long, s As Long
    Dim var, gr, gi, gar
    Dim Fi As Worksheet
    For s = 1 To Max
      With Fi
        gr = 0.8
        gi = 0.8
        var = gr - gi
        gar = 12
        If var <> 0 Then
          .Cells(12, 15) = gar / var
        Else
          ' rien
        End If
      End With
    Next s
    End Sub


    quelques remarques
    RQ0. l''erreur end if sans bloc if vient de With Fi .... sans end with. Le "else rien" n'est pas necessaire
    RQ1. Option explicit en début de module t'oblige a déclarer tes variables
    RQ2. Dim permet de déclarer les variables, et d'en préciser le type (Long est un type d'entier)
    RQ3. Je n'ai pas précisé le type de var, gr, gi, gar, à toi de le faire
    RQ4. Vu ton code, Fi a l'air d'être une variable Feuille, je l'ai déclaré ainsi
    RQ5. conséquence le Cells(12,15) provient de la feuille Fi d'où le '.' devant
    RQ6. je ne vois vraiment pas ce que cette procedure est censée faire. gr, gi, var, gar sont en fait des constantes, et ta procedure ne peut s'appliquer qu'avec ces valeurs, en particulier var vaut 0 donc ..... Si tu pouvais expliquer le but recherché, on pourrait peut être t'aider plus efficacement.

    bonne suite
    1. oui là le programme marche merci à toi l'ami
  2. desolé
    sub calculsequations
    For S= 1 to Max

    with Fi
    var= gr-gi
    gr=0.8 et gi=0.8
    gar=12
    if var<>0 then cells(12, 15)=gar/var
    else

    end if
    next S
    end Sub
    je suis débutant en vba

    merci à vous
    1. re
      il doit y avoir autre chose avant ou après de mal écrit. Peux tu envoyer l'intégralité de ta procédure
      bonne suite
      1. desolé
        sub calculsequations
        For S= 1 to Max

        with Fi
        var= gr-gi
        gr=0.8 et gi=0.8
        gar=12
        if var<>0 then cells(12, 15)=gar/var
        else

        end if
        next S
        end Sub
        je suis débutant en vba

        merci à vous
    2. bonjour,

      je suppose donc que tu es sous VBA
      pour ton pb, il ne faut exécuter la division que si var est non nul

      if var <> 0 then  
        q = gar/var 
      else 
        a toi de voir ....
      end if


      bonne suite
      1. merci à vous
        lorque j'exécute le programme ça me met comme message erreur de compilation end if sans bloc if