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

erreur de division par 0

battit64

XLDnaute Nouveau
Salut tout le monde,
j'ai une macro excel en vba qui me fait une division entre deux colones.
tout fonctionne bien mai j'aimerais faire aprés un tri des lignes par ordre décroissant de ce résultat.Or de temps en temps j'ai une division par 0
avec le message d'erreur #DIV/0! donc j'aimerais faire une macro vba qui quand le résultat est #DIV/0! je met 0 aprés coup bien sur car dans la cellule j'ai R52/Q45 par exemple
j'avais penser à ceci
Sub test2()
Dim n As Integer
Dim m As Integer
titre = "REP"
For n = 19 To 22
For m = 132 To Sheets(titre).Range(lettre(n) & 65536).End(xlUp).Row
'If Worksheets(titre).Range(lettre(n) & m) = #DIV/0! Then
'Worksheets(titre).Range(lettre(n) & m) = 0
MsgBox Worksheets(titre).Range(lettre(n) & m)
'End If

Next m
Next n
cela récupere bien le résultat mais des que j'arrive à la cellule division par 0 ça bug. En fait il me faudrait le formule VBA qui récupere le contenu de la
cellule soit #DIV/0! pour faire ma bidouille
merci des infos
 

dixit

XLDnaute Impliqué
Re : erreur de division par 0

bonsoir,
pourquoi faire simple quand on peut faire compliqué ...
puisque la macro fait la division il suffit d'ajouter un test sur le diviseur
if diviseur = 0 then résultat=0 else faire la division
 

battit64

XLDnaute Nouveau
Re : erreur de division par 0

je sais bien ai en fait je rajoute à la voler dans mes diverses feuilles excel les formules.
et comme mes infos change souvent (ainsi que les numeros de lignes je ne peux pas)
en fait je cherche à faire le fameux SI(ESTNA(formule;"";0)
mais par une boucle en vba
je sais que ça parit bizarre mais cela serait trop long à expliquer....
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : erreur de division par 0

Bonjour

tiens le code pour la cellule A1 à toi de l'adapter

If WorksheetFunction.IsError(Range("A1")) = True Then
If Range("A1") = CVErr(xlErrDiv0) Then MsgBox "coucou"
End If
 

battit64

XLDnaute Nouveau
Re : erreur de division par 0

Merci j'ai adapter ta formule.... et ça marche
Sub test2()
Dim n As Integer
Dim m As Integer
valeur = 0
titre = "REP"
For n = 19 To 22
For m = 7 To Sheets(titre).Range(lettre(n) & 65536).End(xlUp).Row
If WorksheetFunction.IsError(Range(lettre(n) & m)) = True Then
If Sheets(titre).Range(lettre(n) & m) = CVErr(xlErrDiv0) Then Sheets(titre).Range(lettre(n) & m) = 0
End If
Next m
Next n
End Sub

Au fait comment on ferme le POST?
 

Discussions similaires

Réponses
6
Affichages
321
Réponses
6
Affichages
370
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…