Compter durée d'une séquence avec VBA

poiuytreza

XLDnaute Nouveau
Bonjour,

J'ai une colonne dans ma base de donnée Excel avec que des 0 et de 1. Elle se présente comme suit:
0
0
0
1
1
1
1
1
0
0
0
...
(32000 lignes)

Je n'arrive pas à écrire le code qui me permettrait de compter le temps que dure chaque séquence par exemple içi durée de la première séquence avec que des 0 -> 3.
durée de la séquence avec que des 1 -> 4 ...
C'est à dire que l'on compte le nombre de 0 avant l'apparition d'un 1. Puis ensuite on compte le nombre de 1 avant l'apparition d'un zéro. Afin d'avoir la "durée" de chaque séquence.

Si quelqu'un peut m'aider ce serait vraiment sympa parce que là je suis coincée...
 

job75

XLDnaute Barbatruc
Bonjour à tous,

Pas compris pourquoi le résultat d'une séquence de 5 fois 1 doit donner 4.

A+
 

job75

XLDnaute Barbatruc
D'après ce que je comprends, pas besoin de VBA, formule en B2 :
VB:
=SI(EXACT(A2;A3);"";LIGNE()-SIERREUR(EQUIV(9^9;B$1:B1);1))
A+
 

Fichiers joints

Lolote83

XLDnaute Accro
Re bonjour,
Bien vu Job75,
Je reste encore stupéfaits par tes prouesses et tes vérifications .....
Pas compris pourquoi le résultat d'une séquence de 5 fois 1 doit donner 4.
Effectivement une erreur de compteur dans mon code
VB:
Sub Sequence()
    xPrem = [B5]
    xCpt = 0
    For Each xCell In Range("B5:B15")
        If xCell.Value = xPrem Then
            xCpt = xCpt + 1
        Else
            Range("C" & xCell.Row - 1) = xCpt
            xPrem = xCell.Value
            xCpt = 1
        End If
    Next xCell
End Sub
Il faut donc remplacer dans le code original xCpt=0 par xCpt=1 comme le montre le code ci-dessus sur la partie basse.
Honnêtement, j'imaginais bien une formule, mais le VB est venu rapidement.
@+ Lolote83
 

Discussions similaires


Haut Bas