bonjour Marc,Hervé,Excel_lent,Temjeh,Creepy
essayer ce qui suit et ok
Sub CompteCoul()
Dim x As Byte, y As Byte, z As Byte, v As Byte, va As Byte, vm As Byte, derl As Byte 'déclare les variables x, y, z,v et l
UserForm1.Show
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
derl = Range('C65536').End(xlUp).Row
For x = 11 To 12 'derl 'boucle de ligne && jusque derl)
For y = 66 To 125 Step 2 '35 To 63 'boucle sur les 29 couleurs (Tableau de références de AI9 à BN9)
v = 0: vm = 0: va = 0 'définit la variable v
For z = 4 To 65 'boucle sur les 31 cellules (de la colonne D à la colonne AH)
'condition: si la cellule à la même couleur de motif que celle mentionné
'dans le tableau de référence, alors redéfinit la variable v : v = v+1
If Cells(x, z).Interior.ColorIndex = CInt(Right(Cells(10, y), Len(Cells(10, y).Value) - 1)) Then v = v + 1
If Cells(9, z) = 'M' Then
vm = vm + v
v = 0
End If
If Cells(9, z) = 'A' Then
va = va + v
v = 0
End If
Next z 'prochaine cellule
'affiche le nombre dans le tableau de références
If vm <> 0 Then Cells(x, y).Value = vm
If va <> 0 Then Cells(x, y).Offset(0, 1).Value = va
Next y 'prochaine couleur de référence
Next x 'prochaine ligne
Unload UserForm1
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
pas beaucoup le temps,prochainement j'espère te mettre une version plus rapide(en gros la routine boucle sur du vide)
soit attentif à ce fil
à bientôt à tous