Boucle DO IF problème de comptage
Résolu
Nuadhu
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
Nuadhu Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Nuadhu Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
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
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
A voir également:
- Boucle DO IF problème de comptage
- My people do - Télécharger - Organisation
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Do not turn off target traduction - Forum Samsung
- Samsung galaxy tab S Bloquer Downloading do not turn off target - Forum Téléphones & tablettes Android
- What you do what you say - Forum Audio
2 réponses
Bonjour,
Déjà, si tu dépasse les 33000...
et ça va jamais fonctionner...
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
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.
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.
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
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