Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Détection d'un événement "division par 0"

4 réponses
Avatar
Stéphan DuQuébec
Bonjour,

J'ai vu sur le forum de multiples façon de contrer l'apparition d'un #DIV/0!
lors d'une division par 0 (avec fonction SI, fonction perso....) mais pour
une feuille en particulier, j'aimerais, en événement WS Change, détecter une
division par 0 de façon automatique et remplacer le #DIV/0! par 0.

Je tente bien avec quelque chose du genre mais n'arrive pas à mes fins.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Résultat
If Résultat.Formula.IsValid = False Then
Résultat.Value = 0
End If
End Sub

Quelqu'un pourrait me donner une piste de soluce ?

Merci !

PS
Désolé pour Zidane......

4 réponses

Avatar
Daniel
Bonsoir.
Essaie :
If IsError(Target.Value) Then Target.Value = 0
Cordialement.
Daniel
"Stéphan DuQuébec" a écrit dans le
message de news:

Bonjour,

J'ai vu sur le forum de multiples façon de contrer l'apparition d'un
#DIV/0!
lors d'une division par 0 (avec fonction SI, fonction perso....) mais pour
une feuille en particulier, j'aimerais, en événement WS Change, détecter
une
division par 0 de façon automatique et remplacer le #DIV/0! par 0.

Je tente bien avec quelque chose du genre mais n'arrive pas à mes fins.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Résultat
If Résultat.Formula.IsValid = False Then
Résultat.Value = 0
End If
End Sub

Quelqu'un pourrait me donner une piste de soluce ?

Merci !

PS
Désolé pour Zidane......


Avatar
Stéphan DuQuébec
Bonjour M. Daniel,

Votre proposition marche très bien.....mais pour certains cas.

Dans le cas ou le target est la cellule contenant la division.

Cependant, lorsque nous changeons la valeur d'une cellule par 0 et que cette
cellule se trouve simplement à être le dénominateur d'une division qui elle
est sciptée dans une autre cellule, là, rien ne se passe parce que la cellule
ciblée comme target n'est qu'un nombre plutôt que l'opération "division"
elle-même.

Mais je tente de partir de votre proposition pour arriver à mes fins.

Merci !
Avatar
DJ
Salut,

Tu as ceci qui te change toutes les cellules avec une erreur (#DIV/0!,
#REF!, etc...):

Private Sub Worksheet_Change(ByVal Target As Range)
Cells.SpecialCells(xlCellTypeFormulas, xlErrors).Value = 0
End Sub

ATTENTION, c'est radical ca te supprime la formule pour la remplacer par 0.



Si tu veux controler un peu la bete utilise plutot un truc de ce genre:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cellule As Range

For Each Cellule In Cells.SpecialCells(xlCellTypeFormulas, xlErrors)
If Cellule.Text = "#DIV/0!" Then Cellule.Value = 0
Next
End Sub

ATTENTION, meme avertissment, la formule est ecrasée et remplacer par 0

@++

"Stéphan DuQuébec" a écrit dans le
message de news:

Bonjour,

J'ai vu sur le forum de multiples façon de contrer l'apparition d'un
#DIV/0!
lors d'une division par 0 (avec fonction SI, fonction perso....) mais pour
une feuille en particulier, j'aimerais, en événement WS Change, détecter
une
division par 0 de façon automatique et remplacer le #DIV/0! par 0.

Je tente bien avec quelque chose du genre mais n'arrive pas à mes fins.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Résultat
If Résultat.Formula.IsValid = False Then
Résultat.Value = 0
End If
End Sub

Quelqu'un pourrait me donner une piste de soluce ?

Merci !

PS
Désolé pour Zidane......


Avatar
Stéphan DuQuébec
Merci beaucoup à tous 2 !

Salutations du Québec (qui ne comprennons toujours pas la folie de Zizou.....)


Salut,

Tu as ceci qui te change toutes les cellules avec une erreur (#DIV/0!,
#REF!, etc...):

Private Sub Worksheet_Change(ByVal Target As Range)
Cells.SpecialCells(xlCellTypeFormulas, xlErrors).Value = 0
End Sub

ATTENTION, c'est radical ca te supprime la formule pour la remplacer par 0.



Si tu veux controler un peu la bete utilise plutot un truc de ce genre:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cellule As Range

For Each Cellule In Cells.SpecialCells(xlCellTypeFormulas, xlErrors)
If Cellule.Text = "#DIV/0!" Then Cellule.Value = 0
Next
End Sub

ATTENTION, meme avertissment, la formule est ecrasée et remplacer par 0

@++

"Stéphan DuQuébec" a écrit dans le
message de news:

Bonjour,

J'ai vu sur le forum de multiples façon de contrer l'apparition d'un
#DIV/0!
lors d'une division par 0 (avec fonction SI, fonction perso....) mais pour
une feuille en particulier, j'aimerais, en événement WS Change, détecter
une
division par 0 de façon automatique et remplacer le #DIV/0! par 0.

Je tente bien avec quelque chose du genre mais n'arrive pas à mes fins.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Résultat
If Résultat.Formula.IsValid = False Then
Résultat.Value = 0
End If
End Sub

Quelqu'un pourrait me donner une piste de soluce ?

Merci !

PS
Désolé pour Zidane......