Compteur et pas variable

anber

XLDnaute Occasionnel
Bonsoir le Forum,

Je bloque sur un code pour incrémenter un compteur en fonction d'un pas variable suivant le nombre de valeurs identiques dans la colonne D et critère maxi.
Ci-joint un fichier exemple avec des explications (j'espère avoir été clair)

Merci

Bonne soirée
 

Pièces jointes

  • test1.xls
    168 KB · Affichages: 40
  • test1.xls
    168 KB · Affichages: 43
  • test1.xls
    168 KB · Affichages: 42
Dernière édition:

Gurgeh

XLDnaute Occasionnel
Re : Compteur et pas variable

Ah, OKOKOKOK.

Bon, maintenant que j'ai compris, je te propose la formule suivante, à tirer vers le bas

Code:
=SI(MOD(NB.SI($D$1:D1;D1)-1;ENT(NB.SI(D:D;D1)/200)+1)=0;1+(NB.SI($D$1:D1;D1)-1)/(ENT(NB.SI(D:D;D1)/200)+1);"")

Je te laisse regarder comment elle est construite, et je suis à ta disposition pour t'aider à comprendre comment ça marche si besoin.

D'ailleurs, elle doit être optimisable, j'ai peut être pas faite au plus simple...

Gurgej
 

anber

XLDnaute Occasionnel
Re : Compteur et pas variable

Bonjour Gurgeh,
Merci pour ta réponse, mais il me fallait du vba
après avoir chercher un peu plus voici comment j'ai fait
For Each cel In .Range("D1:D" & .Range("D65536").End(xlUp).Row)
Set deb = cel
Set fin = cel

1 If deb.Row = 1 Then GoTo 2
Set deb = deb.Offset(-1)
If deb <> cel Then Set deb = deb.Offset(1) Else GoTo 1

2 If fin.Row = Rows.Count Then GoTo 3
Set fin = fin.Offset(1)
If fin <> cel Then Set fin = fin.Offset(-1) Else GoTo 2

3 NBLARG = fin.Row - deb.Row + 1

pas1 = NBLARG / 200
pas = Int(pas1) + 1 'entier superieur

lin = 1
For lig = deb.Row To fin.Row Step pas
If lin <= 200 Then .Cells(lig, 21) = lin
lin = lin + 1
Next
Next
 

Discussions similaires

Réponses
7
Affichages
405
Réponses
7
Affichages
342
Réponses
6
Affichages
272
  • Résolu(e)
Microsoft 365 Code de tri
Réponses
22
Affichages
404

Statistiques des forums

Discussions
312 490
Messages
2 088 879
Membres
103 981
dernier inscrit
vinsalcatraz