Dans vba - erreur 11 - division par zéro

aredo

XLDnaute Occasionnel
bonjour,

J'ai un petit souci avec un code. Il permet de remplir et classer des valeurs dans un tableau. Mais lorsqu'on lui demande de faire le quotient de la colonne G/H, il bugge lorsqu'une des valeurs est à zéro. Et c'est normal, mais alors comment contourner cet état.

la partie du code en question

'quotient
For i = 1 To UBound(Tbl, 1)
Tbl(i, 8) = CDbl(Tbl(i, 6) / Tbl(i, 7))
Next i

Range("B3").Resize(UBound(Tbl, 1), UBound(Tbl, 2)) = Tbl

DerL = Range("B65536").End(xlUp).Row


For Each Cel In Range("J3:J" & DerL)
Range("B" & Cel.Row).Interior.Color = Cel.Value
Next

DerL = Range("B65536").End(xlUp).Row 'tri couleur
Range("B3:J" & DerL).Sort Key1:=Range("J3"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

Set MonDico = CreateObject("Scripting.Dictionary")

For Each Cel In Range("J3:J" & DerL)
If Not MonDico.Exists(Cel.Value) Then MonDico.Add Cel.Value, Cel.Value
Next

merci au fofo
 

Pièces jointes

  • quotient.png
    quotient.png
    7.5 KB · Affichages: 37
  • recap.png
    recap.png
    13.9 KB · Affichages: 49
Dernière édition:

Paf

XLDnaute Barbatruc
Re : Dans vba - erreur 11 - division par zéro

Bonjour à tous

une autre solution

Code:
For i = 1 To UBound(Tbl, 1)
    If Tbl(i, 7) > 0 Then
        Tbl(i, 8) = CDbl(Tbl(i, 6) / Tbl(i, 7))
    Else
        Tbl(i, 8) = à déterminer
    End If
Next i

A+
 

aredo

XLDnaute Occasionnel
Re : Dans vba - erreur 11 - division par zéro

bonjour,

La condition de chalet53 ne fonctionne pas ici. merci d'avoir tenté.
Par contre la solution de paf me va parfaitement. J'ai juste rajouté "Tbl(i, 8) = Tbl(i, 6)" pour être le plus proche du résultat escompté.
merci tout plein paf

merci au fofo
 
Dernière édition:

Discussions similaires

Réponses
11
Affichages
346
Réponses
12
Affichages
288

Statistiques des forums

Discussions
312 471
Messages
2 088 707
Membres
103 927
dernier inscrit
Mkeal