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
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas