erreur de division par 0

  • Initiateur de la discussion Initiateur de la discussion battit64
  • 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 !

B

battit64

Guest
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
 
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....
 
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?
 
- 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

Réponses
5
Affichages
910
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Retour