> Tous les forums > Forum Bureautique
 compter lignes d'un tableau dont toutes les cellules sont en couleurSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
Boogie Palace
  Posté le 17/06/2015 @ 12:28 
Aller en bas de la page 
Petit astucien

bonjour le forum,

sur la plage [A1:C12], j'ai besoin de compter (en utilisant une formule) les lignes dont les trois cellules sont rouges (je vous épargne le comptage, il y en a 3).




j'ai d'abord écrit cette fonction perso qui détermine si une cellule est rouge :

Function EST_ROUGE(CELL As Range)
__Application.Volatile True
__EST_ROUGE = IIf(CELL.Interior.Color = vbRed, True, False)
End Function

EST_ROUGE(A1) a pour résultat VRAI.
maintenant, pour compter les lignes entièrement rouge, j'ai utilisé SOMMEPROD ainsi :

=SOMMEPROD((EST_ROUGE(A1:A12)=VRAI)*(EST_ROUGE(B1:B12)=VRAI)*(EST_ROUGE(C1:C12)=VRAI))

mais le résultat est zéro.
aidez-moi svp.

(suis sur XL 2010)

edit : je précise que le rouge n'est PAS issu d'une MFC, mais d'une application de couleur tout à fait classique.



Modifié par Boogie Palace le 17/06/2015 12:49
Publicité
ferrand
 Posté le 17/06/2015 à 13:56 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Salut Boogie,

Il semble en effet que sous cette forme elle soit réfractaire à une utilisation matricielle !

Essaie cette version :

Function EST_ROUGE(CELL As Range)
Dim i%, n%, k%, temp()
Application.Volatile
With CELL
n = .Rows.Count - 1
k = .Columns.Count
ReDim temp(n)
For i = 0 To n
temp(i) = IIf(Range(.Cells(i + 1, 1), .Cells(i + 1, k)).Interior.Color = vbRed, 1, 0)
Next i
End With
EST_ROUGE = temp
End Function

Et la formule : =SOMMEPROD(EST_ROUGE(A1:C12)) devrait te donner 3 dans ton exemple.

La fonction renvoie une matrice (et teste par ligne de la plage fournie en argument [tant qu'à faire ça permettait de simplifier la formule] en renvoyant 1 si la ligne est rouge).

Attention : l'instruction Volatile lance le recalcul mais en cas de changement de valeur qui le provoque, un changement de couleur ne le provoque pas. Le cas échéant il faudra donc forcer le recalcul manuellement, ou si tu le juge nécessaire, par une évènementielle sur Selection_Change sur la plage impliquée (ou méthode semblable).

Boogie Palace
 Posté le 17/06/2015 à 15:28 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

merci ferrand pour ta rapidité et l'efficacité de ta solution, comme toujours.
je suis encore en train de décortiquer ton script pour bien en comprendre la logique.

je me permets de te solliciter à nouveau en modifiant le contexte de départ : et si les trois colonnes n'étaient pas contigües ? (ce qui correspond plus à mon besoin ; désolé, je n'avais pas imaginé que cette différence serait importante), comme ceci :



il s'agit de compter les lignes avec les colonnes A, C, E en rouge (les 3 à la fois bien sûr).

ferrand
 Posté le 17/06/2015 à 15:48 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

Ah ! changement de présentation ! Pas mal mais manque des traits pour séparer les posts !

Pas de changement pour la fonction. Mais pour la formule tu reviens à :

=SOMMEPROD(EST_ROUGE(A1:A12)*EST_ROUGE(C1:C12)*EST_ROUGE(E1:E12))

[ou : =SOMMEPROD(EST_ROUGE(A1:A12);EST_ROUGE(C1:C12);EST_ROUGE(E1:E12)) , équivalent]

Boogie Palace
 Posté le 17/06/2015 à 16:02 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

impeccable.

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
28,99 €Clavier sans fil Microsoft All in One avec pad intégré à 28,99 €
Valable jusqu'au 09 Décembre

Amazon fait une promotion sur le clavier Microsoft All in One qui passe à 28,99 € au lieu de 39 €. Ce clavier sans fil (jusqu'à 9 mètres) est idéal pour piloter un ordinateur à distance puisqu'il intègre un touchpad pour contrôler également la souris. Léger, solide et résistant aux éclaboussures, il comporte de nombreuses touches multimédia personnalisables. Il est garanti 3 ans. La livraison est gratuite.


> Voir l'offre
-10 €10 € de réduction à partir de 59 € chez Rakuten sur les produits d'occasion
Valable jusqu'au 08 Décembre

Rakuten propose un code promo permettant de bénéficier de 10 € de réduction immédiate à partir de 59 € d'achats. Pour profiter de l'offre, utilisez le code promo OCCAZ10


> Voir l'offre
6,66 €Set de 10 lames bois Bosch pour scies sauteuses à 6,66 €
Valable jusqu'au 09 Décembre

Amazon fait une promotion sur le set de 10 lames bois Bosch pour scies sauteuses avec leur boite de rangement à 6,66 €. On trouve l'ensemble ailleurs à partir de 12 €.

Vous trouverez 2x T 101 B Clean for Wood, 2x T 111 C Basic for Wood, 2x T 144 D Speed for Wood, 2x T 144 DP Precision for Wood, 1x T 101 AO Clean for Wood, 1x T 119 BO Basic for Wood.


> Voir l'offre

Sujets relatifs
selection plage cellules dont nombre lignes variab
compter cellules de même couleur
Faire un tableau sur Excel avec des sauts de lignes
Supprimer lignes d'un Tableau à l'impression
macro afficher masquer lignes tableau dans word 2010
EXCEL 2007 : les textes des cellules sont surlignés
Imprimer ses enveloppes oui, mais toutes les lignes !
macro pour trier un tableau et effacer les lignes sans saisie
Imprimer toutes les colonnes d'un tableau
Excels 2010 Figer 3 premières lignes d'un tableau SVP.
Plus de sujets relatifs à compter lignes d''un tableau dont toutes les cellules sont en couleur
 > Tous les forums > Forum Bureautique