Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

division par zéro

  • Initiateur de la discussion Initiateur de la discussion derkoo410
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

D

derkoo410

Guest
Bonjour

Je souhaiterai savoir comment puis-je éviter l´arrêt d´une macro de calculs provoqué par l´erreur 11 qui correspond à celui d´une division par zéro.
ex:
Worksheets("Stat Gen").Range("D20") = ((Worksheets("Data").Range("AO11") / Worksheets("Data").Range("D11")) / (Worksheets("Data").Range("AO14") / Worksheets("Data").Range("D14"))) - 1

Cette erreur apparaît lorsque la range est égale à zéro ou qu´elle est vide.

Existe-t-il svp une manière de l´éviter? Avec un "IF" peut-être

merci par avance de votre aide
Antoine
 
Re : division par zéro

bonjour

peut-etre avec :
if ( Worksheets("Data").Range("D11").value<>0 ) and ( Worksheets("Data").Range("AO14").value<>0 ) and(Worksheets("Data").Range("D14").value<>0) then calcul

a essayer

tien moi au courant...
 
Re : division par zéro

Bonsoir,

En reprenant votre proposition, testez si aucun des diviseurs n'est nul.

Code:
'Avec if
If Worksheets("Data").Range("D11") <> 0 And _
    Worksheets("Data").Range("AO14") <> 0 And  _
    Worksheets("Data").Range("D14") <> 0  Then
        Worksheets("Stat Gen").Range("D20") = ((Worksheets("Data").Range("AO11") / _
        Worksheets("Data").Range("D11")) / (Worksheets("Data").Range("AO14") / _
        Worksheets("Data").Range("D14"))) - 1
Else
        Worksheets("Stat Gen").Range("D20") = ""
End If

'ou bien par une barbare gestion d'erreur:
' mais peut masquer d'autres erreurs que la division par 0 !
On Error Resume Next
Worksheets("Stat Gen").Range("D20") = ((Worksheets("Data").Range("AO11") / _
Worksheets("Data").Range("D11")) / (Worksheets("Data").Range("AO14") / _
Worksheets("Data").Range("D14"))) - 1
On Error GoTo 0
 
Dernière édition:
Re : division par zéro

Merci aux 3 pour vos rapide réponses.
Le "On error go to" me va parfaitement pour l´appli. Je vais pour voir continuer à écrire mes formules ;-)
Bonne soirée
 
Re : division par zéro

Bonjour le forum et Jean-Marcel,

1) Effectivement, j'ai fait de grossières erreurs dans mon code (à ne pas vouloir se relire deux fois...). Mille excuses à derkoo410.
2) Le terme 'barbare gestion d'erreur' ne visait que moi-même parce que le cas s'est présenté à moi au moins une fois. Mais comme vous le précisez, limitée à une seule ligne, les risques sont presque nuls.
Merci d'avoir signalé mon erreur.
Cordialement,
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

M
Réponses
9
Affichages
3 K
Maxime7
M
Réponses
0
Affichages
2 K
K
Réponses
0
Affichages
3 K
K
A
Réponses
3
Affichages
862
adelaidetermote
A
C
Réponses
6
Affichages
2 K
C
M
Réponses
4
Affichages
2 K
M
D
Réponses
20
Affichages
10 K
A
Réponses
1
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…