Compter une série de nombres consécutifs

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

quickfuture

XLDnaute Junior
Bonsoir à tous

Dans une de mes colonnes disont colonne A, contient une centaine de nombres qui peuvent être soit positifs ou négatifs. Exemple :

22
-12
73
122
21
-13
-112
-4
-27
-128
32
185

Dans ma colonne B j'aimerais connaitre quelle a été la plus grande série de nombres positifs consécutifs ?
Dans ma colonne C la plus grande série de nombres négatifs consécutifs. Dans l'exemple, pour les nombres négatifs, c'est de l'ordre de 5.

Merci d'avance
 
Re : Compter une série de nombres consécutifs

Bonsoir quickfuture, l.et.lilou,

On peut utiliser ces fonctions VBA :

Code:
Function MAXPOSITIF&(Liste As Range)
Dim n&, i&, c&, j&
n = Liste.Count
For i = 1 To n
  c = 0
  For j = i To n
    If Liste(j) > 0 Then c = c + 1: i = j Else Exit For
  Next
  MAXPOSITIF = Application.Max(c, MAXPOSITIF)
Next
End Function

Function MAXNEGATIF&(Liste As Range)
Dim n&, i&, c&, j&
n = Liste.Count
For i = 1 To n
  c = 0
  For j = i To n
    If Liste(j) < 0 Then c = c + 1: i = j Else Exit For
  Next
  MAXNEGATIF = Application.Max(c, MAXNEGATIF)
Next
End Function
Fichier joint.

A+
 

Pièces jointes

Dernière édition:
Re : Compter une série de nombres consécutifs

Bonsoir @ tous,
Salut eriiic..
Les formules que je t'ai donné sur le fichier en Post#6 , n'ont pas besoin de les incrémenter vers le bas, elles vont te donner le résultat final 6 et 7 sans aucune colonne intermédiaire.
@ + +
 
Re : Compter une série de nombres consécutifs

Bonsoir eriiic,
On s'est mal compris...
Les formules que je t'ai donné sur le fichier en Post#6 , n'ont pas besoin de les incrémenter vers le bas, elles vont te donner le résultat final 6 et 7 sans aucune colonne intermédiaire.
Par ce msgs je m'adresse à quickfuture car j'ai vu sur son dernier fichier du Post#10 qu'il tire mes 2 formules vers le bas, par-contre j'ai aimé ton intervention...
@ + +
 
Re : Compter une série de nombres consécutifs

Bonjour à tous,

Je repasse par là avec un autre code pour les fonctions VBA :

Code:
Function MAXPOSITIF&(colonne As Range)
Dim t, i&
t = colonne.Resize(Application.Match(9 ^ 9, colonne))
t(1, 1) = -(Val(t(1, 1)) > 0)
For i = 2 To UBound(t)
  t(i, 1) = -(Val(t(i, 1)) > 0) * (Val(t(i - 1, 1)) + 1)
Next
MAXPOSITIF = Application.Max(t)
End Function

Function MAXNEGATIF&(colonne As Range)
Dim t, i&
t = colonne.Resize(Application.Match(9 ^ 9, colonne))
t(1, 1) = -(Val(t(1, 1)) < 0)
For i = 2 To UBound(t)
  t(i, 1) = -(Val(t(i, 1)) < 0) * (Val(t(i - 1, 1)) + 1)
Next
MAXNEGATIF = Application.Max(t)
End Function
Fichier (2).

A+
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
586
Compte Supprimé 979
C
Retour