> 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
89 €SSD Samsung 870 QVO 1 To à 89 €
Valable jusqu'au 04 Mars

Boulanger fait une promotion sur le tout nouveau SSD Samsung 870 QVO 1 To qui passe à 89 €. Ce SSD offre des vitesses de 560 Mo/s en lecture et 530 Mo/s en écriture. Il est garanti 3 ans.


> Voir l'offre
79 €Routeur TP-Link Archer AX50 WiFi 6 à 79 €
Valable jusqu'au 03 Mars

Amazon fait une promotion sur le routeur TP-Link Archer AX50 WiFi 6 qui passe à 79 € au lieu de 100 €. L'Archer AX50 de TP-Link embarque la technologie WiFi 6 (802.11ax) qui permet de passer à la vitesse supérieure (2.9 Gbps) tout en étant rétro-compatible avec les normes WiFi 802.11a/b/g/n/ac. Doté de 4 antennes Wi-Fi et capable de prendre en charge la technologie 1024 QAM et les canaux 160 MHz, l'Archer A50 est aussi pourvu d'une prise WAN 1 GbE et de 4 ports Ethernet Gigabit. Les nombreux appareils connectés (jusqu'à 256) peuvent ainsi bénéficier de la meilleure connexion possible en toute fluidité.


> Voir l'offre
59,99 €Souris Logitech MX Master 2S à 59,99 €
Valable jusqu'au 03 Mars

Fnac fait une promotion sur la souris sans fil Logitech MX Master 2S qui passe à 59,99 € alors qu'on la trouve ailleurs autour de 85 €. Cette évolution de la MX Master est équipée de la technologie Logitech Flow. Cette dernière, révolutionnaire, vous permet de déplacer le curseur de votre souris d'un ordinateur à un autre (jusqu'à 3 ordinateurs), d'effectuer des copier/coller de textes, d'une images ou encore de fichiers d'une machine à une autre. Vous allez ainsi pouvoir transférer vos contenus entre 3 ordinateurs différents sans la moindre difficulté. 


> 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