Comptage de valeur suppérieur à x (par exemple 200 kW)

Bonjour, je dois compter le nombre de valeurs qui se suivent dans une colonne et qui sont supérieures à , par exemple 200 kW, seulement je débute en VBA et je n'ai pas du tout compris comment réaliser ce miracle et trouver un code qui marche bien, enfin qui est efficace.

Pour être plus précis, si j'ai deux valeur (ou x valeurs) > à 200 qui se suivent et la troisième < à 200, la macro doit me compter le nombre (x) de valeur dans cette chaine et me signaler le nombre (x) de valeur qui se suivent supérieures à 200 dans une cellule (peu importe la cellule) et ainsi de suite jusqu'à arriver à la fin de la colonne.

La macro se remet en marche et continue le comptage jusqu'à arriver en bas de la colonne (525600 ème lignes) => une boucle je pense

J'ai en tout dans ma colonne, 525600 cellules contenant des valeurs.

Merci d'avance pour les réponses, si il y en a.

Si il y a besoin de plus de précision ou un élément qui n'est pas clair n'hésitez pas à m'écrire

Meilleures salutations

Bonjour MichaudY,

Pour être plus précis pour ton suivi. D'un côté tu parles de colonne puis ensuite de cellule et chaine.

Exemple: si en colonne A j'ai A2, A3 et A4 qui valent 200 puis A5 qui vaut 150. Il y aura 2 valeurs qui se suivent. A2 et A3 puis A3 et A4.

Maintenant si toujours colonne A, tu as A2 qui est égale à 200. A3 qui vaut 200_150_200, A4 égale 150. Ce n'est plus le même compte.

N'est ce pas?

Oui exactement, merci pour ta réponse

Pour reprendre ton exemple :

A2 = 200

A3 = 200

A4 = 200

A5 = 150

Il y a 3 valeurs à 200 qui se suivent ( car l'écart entre mes cellule A2 à A3 représente un écart de temps (10 minutes, 20 minutes ….etc...), en sachant le nombre de valeur > ou = 200 qui se suivent je peux déterminer le temps ou la valeur est > ou = à 200.

Est-ce clair ?

A nouveau,

Donc si le début de tes valeurs est en ligne 2 de la colonne A. Tu places le nombre souhaité, ici 200 en A1.

Avec le code ci-dessous tu auras le nombre de valeurs qui se suivent.

Puisque une fois que tu rencontres une valeur différente de 200 il y aura rupture de l'égalité.

For C = 2 to 525600
if Cells(C,"A")>=200 and Cells(C-1,"A") >= 200) then N=N+1
Next C

Cela te convient-il?

Parfait je vais voir si cela marche.

Par contre ma colonne de valeur est de 525600 lignes, ce qui veut dire que il y a plusieurs fois dans cette liste des valeurs, des valeurs > ou = à 200 qui se suivent, et qui sont suivi par des valeur < 200, donc je pense qu'il faut créer une boucle qui passe en revue toute la liste. Et qui compte à chaque fois combien de valeurs > ou = à 200 se suivent.

Ce qui est important c'est de compter combien de fois la valeurs > ou = à 200 apparait, et surtout combien de fois d'affilée elle aparaît.

Exemple :

A2 = 120

A3 = 200

A4 = 250

A5 = 200

A6 = 120

A7 = 100

A8 = 220

A9 = 240

A10 = 50

Il y a une chaine de 3 (A3,A4;A5) valeurs > ou = à 200 et une chaine de 2 (A8, A9) valeur > ou = à 200

Est-ce clair ? et cela sur 525600 lignes, donc je pense une boucle avec conditions

Merci pour votre réponse

Suite,

J'ai modifié le code selon ton dernier message.

En N tu auras un global de toutes les fois ou les valeurs qui se suivent sont >= à 200

Par contre tu peux aussi vouloir obtenir non pas le total (selon ton dernier exemple égale à 5) mais un ensemble (chaine) formé de 3 et 2.

Donc des sous-totaux.

Exactement, c'est des chaînes que j'ai besoin.

Combien de valeurs > ou = à 200 il y a par chaine, c'est exactement cela.

Le code est où ?

Merci mille fois

A nouveau,

Le code a été modifié dans mon deuxième message sur le sujet. Mais c'est le code pour le total.

Et non les sous-totaux (chaines). Pour cela, compte tenu du nombre de lignes on ne peut pas chaîner (transformer en texte) les sous-totaux.

Exemple: 3_2_5_ etc...Il est préférable soit de passer par une variable tableau. Soit d'inscrire directement en colonne B (ou autre) les sous-totaux.

Voici le code pour la colonne B.

For C = 2 to 525600
if Cells(C,"A")>=200 and Cells(C-1,"A") >= 200 then N=N+1 Else if N>0 then Lig=Lig+1: Cells(Lig,"B")=N+1:N=0
Next C

Bon écoutez, pour le moment ça à l'air de marcher.

Je vous remercie du fond du cœur et je reprendrais contact dès que j'aurais d'autres soucis.

Merci beaucoup, je n'ai pas beaucoup, voir quasiment pas d'expérience dans le VBA.

Meilleures salutations

A nouveau,

Ne pas oublier de clore le sujet si cela convient . Merci.

Parfait merci, je ne savais pas que je devais le faire.

Meilleures salutations

Rechercher des sujets similaires à "comptage valeur supperieur exemple 200"