Microsoft 365 compter des cellules selon critères + écrire le résultat

ABDELHAK

XLDnaute Occasionnel
Bonjour le forum,
Je voudrais avoir votre aide pour réaliser une macro.
Dans la Feuil3, il y a des lignes composées de 10 chiffres (de la colonne B à la colonne K). Il y a des cellules ont un fond vert et des cellules sans remplissage. Il y a +/- 10000 lignes (10 chiffres par ligne) au total
J’aimerais que la macro exécute les tâches suivantes :
  • La macro doit compter les cellules à fond vert de la 2ième ligne et elle doit noter le résultat à la colonne L2.
  • La macro doit compter les cellules à fond vert de la 3ième ligne et elle doit noter le résultat à la colonne L3.
  • La macro doit compter les cellules à fond vert de la 4ième ligne et elle doit noter le résultat à la colonne L4.
Et ainsi de suite pour les 10000 lignes de la Feuil3.
Je joins un fichier pour plus de détails.
En espérant avoir été claire.
Merci d’avance pour votre aide.
ABDELHAK
 

Pièces jointes

  • K_N_DOWNLOAD_1.xlsm
    37.5 KB · Affichages: 8

danielco

XLDnaute Accro
Bonjour,

Essaie :

VB:
Sub test()
  Dim C As Range
  For Each C In Range("A2", Cells(Rows.Count, 1).End(xlUp))
    Cells(C.Row, 12) = 0
    For i = 2 To 11
      If Cells(C.Row, i).Interior.Color = 65280 Then
        Cells(C.Row, 12) = Cells(C.Row, 12) + 1
      End If
    Next i
  Next C
End Sub

Cordialement.

Daniel
 

ABDELHAK

XLDnaute Occasionnel
Bonjour danielco,
Je viens juste d’essayer les lignes de codes que vous avez réalisées pour moi.
Elle fonctionne à merveille. Elle s’est exécutée en moins de 2 minutes.
Infiniment merci pour votre aide.
Je ne comprends pas les lignes de codes, pouvez-vous y ajouter quelques annotations, s’il vous plaît ?
A +
ABDELHAK
 

danielco

XLDnaute Accro
Voici. S'il y a quelque chose que tu ne comprends pas, n'hésite pas à le dire.

VB:
Sub test()
  Dim C As Range
  'Boucle sur chaque cellule remplie de la colonne A (à partir de A2)
  For Each C In Range("A2", Cells(Rows.Count, 1).End(xlUp))
    Cells(C.Row, 12) = 0
    'Sur la liggne de la cellule en courss de traitement,
    'boucle sur les colonnes B à K (2 à 11)
    For i = 2 To 11
      '"65280" est la nuance de vert utilisée
      'Pour chaque cellule, si elle est verte, on additionne 1 en colonne L
      If Cells(C.Row, i).Interior.Color = 65280 Then
        Cells(C.Row, 12) = Cells(C.Row, 12) + 1
      End If
    Next i
  Next C
End Sub

Daniel
 

Discussions similaires