> 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 poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
19,79 €Prise connectée Wi-Fi TP-Link HS100 à 19,79 €
Valable jusqu'au 28 Février

Amazon fait une promotion sur la prise intelligente Wi-Fi TP-Link HS100 qui passe à 19,79 € alors qu'on la trouve habituellement autour de 35 €. Cette prise peut être contrôlée à distance en utilisant l'app gratuite KASA sur votre smartphone (iOS ou Android). Vous pouvez créer des planifications horaires pour allumer ou éteindre automatiquement et quand vous le souhaitez, l'appareil qui y est branché. Pour en savoir plus, n'hésitez pas à lire notre dossier pratique Contrôler une prise électrique à distance.


> Voir l'offre
34,90 €Caméra de surveillance TP-Link Tapo C200 à 34,90 €
Valable jusqu'au 26 Février

Amazon fait une promotion sur la caméra de surveillance TP-Link Tapo C200 qui passe à 34,90 € livrée gratuitement au lieu d'une quarantaine d'euros ailleurs. Cette caméra se connecte à votre réseau en WiFi et peut ensuite être contrôlée à distance. Elle offre une définition FullHD 1080p, la vision nocturne, la détection de mouvements (recevez une notification si quelque chose est détecté), une alarme sonore et visuelle. Le stockage se fait en local sur une carte MicroSD.


> Voir l'offre
20,45 €Carte mémoire microSDXC UHS-I SanDisk A1 Ultra 128 Go à 20,45 €
Valable jusqu'au 28 Février

Amazon propose actuellement la carte mémoire microSDXC UHS-I SanDisk A1 Ultra 128 Go à 20,45 € livrée gratuitement. Cette carte mémoire offre des vitesses jusqu'à 100 Mo/s et est idéale pour les téléphones, caméras et appareils photo HD. Elle est certifiée GoPro et Switch.


> 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