Compter une série de nombres consécutifs

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
 

job75

XLDnaute Barbatruc
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

  • Max série(1).xls
    34.5 KB · Affichages: 59
Dernière édition:

R@chid

XLDnaute Barbatruc
Re : Compter une série de nombres consécutifs

Bonsoir @ tous,
Un essai par formules matricielles @ valider par Ctrl+Maj+Entree
@ + +
 

Pièces jointes

  • quickfuture.xlsx
    9.7 KB · Affichages: 101
  • quickfuture.xlsx
    9.7 KB · Affichages: 109
  • quickfuture.xlsx
    9.7 KB · Affichages: 115

quickfuture

XLDnaute Junior
Re : Compter une série de nombres consécutifs

Merci à tous,

Je me suis peut etre mal exprimé, donc je post le fichier de R@chid, avec se que je souhaite pour etre plus clair, merci de votre patience
 

Pièces jointes

  • quickfuture.xlsx
    12.2 KB · Affichages: 100
  • quickfuture.xlsx
    12.2 KB · Affichages: 95
  • quickfuture.xlsx
    12.2 KB · Affichages: 89

eriiic

XLDnaute Barbatruc
Re : Compter une série de nombres consécutifs

Bonsoir,

E2: =SI(A2>0;SOMME(E1;1);0)
F2: =SI(A2<0;SOMME(F1;1);0)
I7: =MAX(F:F)
J7: =MAX(E:E)
eric
 

Pièces jointes

  • Classeur3.xlsx
    12.6 KB · Affichages: 82
  • Classeur3.xlsx
    12.6 KB · Affichages: 96
  • Classeur3.xlsx
    12.6 KB · Affichages: 100

R@chid

XLDnaute Barbatruc
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.
@ + +
 

R@chid

XLDnaute Barbatruc
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...
@ + +
 

job75

XLDnaute Barbatruc
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

  • Max série(2).xls
    36 KB · Affichages: 59

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 099
Membres
103 116
dernier inscrit
kutobi87