Compter le temps d'occurrence d'une valeur

Résolu/Fermé
Benjj61 Messages postés 89 Date d'inscription lundi 13 décembre 2010 Statut Membre Dernière intervention 8 décembre 2015 - 21 oct. 2015 à 12:12
Benjj61 Messages postés 89 Date d'inscription lundi 13 décembre 2010 Statut Membre Dernière intervention 8 décembre 2015 - 22 oct. 2015 à 15:21
Bonjour,

J'ai un tableau de ce type :
0
0
0
1
0
0
1
1
0
0
1
1
0
0
0
0
1
1
0
0
0
0
0
0
0
1
1
0
0
1
Et je voudrais en sortir, par exemple, qu'il y a une répétition (à la suite) du 0 :
0* sur 1 ligne
3* sur 2 lignes
1* sur 3 lignes
1* sur 4 lignes
0* sur 5 lignes
0* sur 6 lignes
1* sur 7 lignes
...
0* sur 179(et plus) lignes.

La syntaxe de sortie m'est égale, j'ai juste besoin des valeurs (0, 3, 1, 1, ..., 0).

En espérant que mon problème soit compris.

Merci!

Benjj

4 réponses

via55 Messages postés 14403 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 24 avril 2024 2 703
22 oct. 2015 à 14:35
Bonjour

Une solution par formules sans macro :
http://www.cjoint.com/c/EJwmJwJZmU6

Cdlmnt
Via
1
Le Pingou Messages postés 12042 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 24 avril 2024 1 426
21 oct. 2015 à 17:08
Bonjour,
Vous parlez d'un tableau et la vos données sont en colonne.... !
Pas clair du tout.

0
Benjj61 Messages postés 89 Date d'inscription lundi 13 décembre 2010 Statut Membre Dernière intervention 8 décembre 2015 4
22 oct. 2015 à 10:10
Bonjour Le Pingou,

En effet, car j'ai d'autres données dans ce tableau, mais je veux ce calcul seulement sur cette colonne. Vous voyez ce que je veux dire?
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 22/10/2015 à 13:56
Bonjour benjj61, Le Pingou

mon message de 12,40h annulé (décalage d'espace)
un essai:
Option Explicit
Option Base 1
Const Col As String = "A" 'colonne à compter
Const Col_d As String = "D" 'tableau résultats
'-------------------------------------------
Sub compter_les_zeros()
Dim Derlig As Integer, Cptr As Integer, T_score
Dim T_init, Nbre As Integer
'i--------nitialisations
Application.ScreenUpdating = False

'tableau résultats comptage
ReDim T_score(179, 2)
For Cptr = 1 To 179
T_score(Cptr, 1) = Cptr
T_score(Cptr, 2) = 0
Next
'tableau à compter
Derlig = Columns(Col).Find(what:="*", searchdirection:=xlPrevious).Row
T_init = Application.Transpose(Range("A1:A" & Derlig))

'----------------parcours la liste 0-1
For Cptr = 1 To UBound(T_init)
If T_init(Cptr) = 0 Then
Nbre = Nbre + 1
Else
If Nbre >= 179 Then
T_score(179, 2) = T_score(179, 2) + 1
Else
T_score(Nbre, 2) = T_score(Nbre, 2) + 1
End If
Nbre = 0
While T_init(Cptr + 1) = 1
Cptr = Cptr + 1
Wend
End If
Next

'-------------restitution
Cells(2, Col_d).Resize(179, 2) = T_score

End Sub


la maquette;
http://www.cjoint.com/c/EJwl3oAO7iv

Michel
0
Benjj61 Messages postés 89 Date d'inscription lundi 13 décembre 2010 Statut Membre Dernière intervention 8 décembre 2015 4
22 oct. 2015 à 14:17
Bonjour michel_m,
Merci pour l'investissement, je vais regarder ce que cela donne et je vous tiens au courant!
0
Benjj61 Messages postés 89 Date d'inscription lundi 13 décembre 2010 Statut Membre Dernière intervention 8 décembre 2015 4
22 oct. 2015 à 15:21
Bonjour via55,

Par solution de simplicité et de rapidité, j'ai pris votre solution.
Merci à tous pour l'aide apportée!

Bonne journée!
0