Boucle DO IF problème de comptage

Résolu
Bonjour,

Je viens de faire une petite macro qui doit comptabiliser les valeurs dans une colonne qui sorte d'une fourchette j'ai donc pondu la boucle suivante :

Dim NB_RELEVE_CRIT As Integer
Dim i As String
i = 2
Do
If 20 < Sheets(Onglet).Cells(i, 8).Value < 40 Then 'Fourchette de valeur pour la terre'

Else

If Sheets(Onglet).Cells(i, 6).Value = "Terre des masses" Or Sheets(Onglet).Cells(i, 6).Value = "Terre du neutre" Then
NB_RELEVE_CRIT = NB_RELEVE_CRIT + 1
End If

End If
i = i + 1

Loop While Sheets(Onglet).Cells(i, 7).Value = ""

Sheets("Indicateurs").Range("E30") = NB_RELEVE_CRIT

En gros I est en string car je dépasse les 33000 lignes les valeur sont dans la colonne 8 je dois les comptabiliser seulement si ce sont des terre du neutre ou terre des masses (colonne 6 ).

Quand je lance la macro tout fonctionne sauf que le résultat final est 0 dans la case E30 ???

Ps: Onglet est une variable définit auparavant

Merci d'avance pour vos réponses éclairées.

Windows 7 / Firefox 6.0.2

2 réponses

  1. Contributeur
    Bonjour,
    Déjà, si tu dépasse les 33000...
    Dim NB_RELEVE_CRIT As Long   
    Dim i As Long

    et ça va jamais fonctionner...
    If 20 < Sheets(Onglet).Cells(i, 8).Value < 40 Then 'Fourchette de valeur pour la terre' 

    Ce qui revient à dire Si 20 < 0 ou Si 20 < -1 Ce qui n'arrivera jamais.
    Explique cette ligne
    A+
    EDIT en relisant.. peut-être
    If Sheets(Onglet).Cells(i, 8).Value > 20 And Sheets(Onglet).Cells(i, 8).Value < 40 Then 'Fourchette de valeur pour la terre'

    Et enlève le "else"
    Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
    NOTE : Je ne répond pas aux MP pour les questions techniques.
    1. Merci pour ta réponse rapide =)

      J'ai modifié en

      If Sheets(Onglet).Cells(i, 8).Value > 40 Or Sheets(Onglet).Cells(i, 8).Value < 20

      Car il faut sortir de la fourchette pour être comptabilisé.

      Mais la valeur final de mon NB_RELEVE_CRIT est de 1 maintenant alors qu'elle devrait être bien supérieur

      J'ai remarqué mon erreur j'ai mis des boucles While alors qu'il me faut des Until Merci de ton aide =D