Pb div#0 dans macro

Bonjour,

Je suis débutante en vba et j'ai commencé a créer une macro qui permet de donner un résultat liés a des couleurs de cellules par contre je n'arrive pas à enlever le div#0 quand il divise par zéro j'ai fait un truc comme ça :

Sub annee2017()

Dim numeroligne As Integer

numeroligne = Range("$AS3") + 1

Range("AS3").Select

If Range("$AL3").Value <> 0 Then

ActiveCell.FormulaR1C1 = "=(RC[-8]+RC[-4])/((RC[-8]+RC[-4])+(RC[-7]+RC[-3]))"

Selection.AutoFill Destination:=Range("AS3:AS112"), Type:=xlFillDefault

Range("AS3:AS112").Select

ElseIf Range("$AP3").Value <> 0 Then

ActiveCell.FormulaR1C1 = "=(RC[-8]+RC[-4])/((RC[-8]+RC[-4])+(RC[-7]+RC[-3]))"

Selection.AutoFill Destination:=Range("AS3:AS112"), Type:=xlFillDefault

Range("AS3:AS112").Select

ElseIf Range("$AP3").Value = 0 Or Range("$AL3").Value = 0 Or Range("$AK3").Value = 0 Or Range("$AO3").Value = 0 Then

Range("$AS3").Value = ""

Selection.AutoFill Destination:=Range("AS3:AS112"), Type:=xlFillDefault

Range("AS3:AS112").Select

Selection.Style = "Percent"

End If

End Sub

pourriez vous me dire ce qui va pas je coince

merci

Bonjour

une petite aide sur la feuille directement et non en VBA ici Support Office corriger une erreur #DIV/0!

If Not IsError(Cells(i, l)) And Cells(i, l) <> 0 Then

Else

End If

crdlt,

André

merci je vais essayer

peux tu me dire comment je l'integre dans ma macro svp merci

Bonjour,

Essaie en modifiant la formule ainsi :

ActiveCell.FormulaR1C1 = "=IFERROR((RC[-8]+RC[-4])/((RC[-8]+RC[-4])+(RC[-7]+RC[-3])),"""")"

voila ce que j'ai fait mais j'ai toujours mon div#

Range("AS3").Select

If Range("$AL3").Value <> 0 Then

ActiveCell.FormulaR1C1 = "=(RC[-8]+RC[-4])/((RC[-8]+RC[-4])+(RC[-7]+RC[-3]))"

Selection.AutoFill Destination:=Range("AS3:AS112"), Type:=xlFillDefault

Range("AS3:AS112").Select

ElseIf Range("$AP3").Value <> 0 Then

ActiveCell.FormulaR1C1 = "=(RC[-8]+RC[-4])/((RC[-8]+RC[-4])+(RC[-7]+RC[-3]))"

Selection.AutoFill Destination:=Range("AS3:AS112"), Type:=xlFillDefault

Range("AS3:AS112").Select

ElseIf Range("$AP3").Value = 0 Or Range("$AL3").Value = 0 Or Range("$AK3").Value = 0 Or Range("$AO3").Value = 0 Then

ActiveCell.FormulaR1C1 = "=IFERROR((RC[-8]+RC[-4])/((RC[-8]+RC[-4])+(RC[-7]+RC[-3])),"""")"

Selection.AutoFill Destination:=Range("AS3:AS112"), Type:=xlFillDefault

Range("AS3:AS112").Select

ça ne marche pas

Bonjour cpin31,

Une partie de ce que tu fais dans ton code VBA est à la fois pour : « si [AL3] <> 0 ou [AP3] <> 0 »

et pour son inverse : « si [AL3] = 0 ou [AP3] = 0 », donc les tests sur [AL3] et [AP3] sont inutiles,

c'est pourquoi je les ai enlevés.

Il y a beaucoup de répétitions inutiles dans ton code VBA ➯ sauf erreur de ma part,

toutes tes lignes de code VBA se résument à ceci (à vérifier soigneusement) :

  [AS3].Select
  If [AK3] = 0 Or [AO3] = 0 Then
    ActiveCell.FormulaR1C1 = "=IFERROR((RC[-8]+RC[-4])/((RC[-8]+RC[-4])+(RC[-7]+RC[-3])),"""")"
    Selection.AutoFill Destination:=[AS3:AS112], Type:=xlFillDefault
    [AS3:AS112].Select
  End If

En fait, il semble donc que ce que tu veux est que les 3 lignes de code qui sont dans le If .. Then

s'exécutent seulement si AK3 = 0 ou si AO3 = 0.

Si c'est bien ce que tu veux pour ton cas réel, ça devrait aller ; si oui, merci de passer le sujet en résolu

(cliquer sur la coche V à droite du bouton EDIT) ; sinon, je n'ai pas d'autre solution à proposer.

Cordialement

merci beaucoup j'ai juste modifier les cellules sous condition.

Rechercher des sujets similaires à "div macro"