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: 36
  • recap.png
    recap.png
    13.9 KB · Affichages: 48
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
297
Réponses
12
Affichages
251

Statistiques des forums

Discussions
312 246
Messages
2 086 578
Membres
103 247
dernier inscrit
bottxok