Erreur d'execution de type 6: Dépassement de capacité

Bonjour,

Lorsque j'execute la macro du fichier joint j'ai un dépassement de capacité. J'ai regardé sur le forum les conversations qui traitent le sujet mais malgré cela je n'arrive pas à advancer.

Merci d'avance!

14test-forum.xlsm (336.20 Ko)

To precise the error is coming from this part of the code

For Each Cel In Range("H2", Range("H2").End(xlDown))

If Cel = 0 And Cel.Offset(0, 1) = 0 Then

Cel.Offset(0, 2).Value = CLng(Cel.Offset(0, -2).Value) / CLng(Cel.Offset(0, -4).Value)

Else: Cel.Offset(0, 2).Value = 0

End If

Next Cel

Bonjour,

Le problème vient simplement du fait que votre calcul est une division. Cependant, en math, la division par zéro est imposible or votre ligne qui bug divise par zéro

Remplacez votre code par celui-ci

For Each cel In Range("H2", Range("H" & Rows.Count).End(xlUp))
    If cel = 0 And cel.Offset(0, 1) = 0 Then
    If cel.Offset(0, -4).Value = 0 Then
    On Error Resume Next
    Else
        cel.Offset(0, 2).Value = CLng(cel.Offset(0, -2).Value) / CLng(cel.Offset(0, -4).Value)
    End If
    Else
    cel.Offset(0, 2).Value = 0
    End If
    Next cel

Cordialement

18test-forum.xlsm (394.05 Ko)

Merci! Top!

C'est parfait et cela m'a permis de realiser que j'avais des lignes avec que des zeros dans le fichier initial, est possible de supprimer ces lignes avec une macro?

Re,

Oui, c'est possible de les supprimer, il suffit de rajouter avant "On Error Resume Next" :

Range(cel.Row & ":" & cel.Row).Delete

Le code devient alors:

For Each cel In Range("H2", Range("H" & Rows.Count).End(xlUp))
    If cel = 0 And cel.Offset(0, 1) = 0 Then
    If cel.Offset(0, -4).Value = 0 Then
    Range(cel.Row & ":" & cel.Row).Delete
    On Error Resume Next
    Else
        cel.Offset(0, 2).Value = CLng(cel.Offset(0, -2).Value) / CLng(cel.Offset(0, -4).Value)
    End If
    Else
    cel.Offset(0, 2).Value = 0
    End If
    Next cel

Cordialement

C'est parfait!

Un immense merci.

Rechercher des sujets similaires à "erreur execution type depassement capacite"