× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > 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
329 €Ecran PC 27 pouces Dell S2719DGF (WQHD, 155 Hz, 1 ms, FreeSync) à 329 €
Valable jusqu'au 10 Juillet

Amazon fait une promotion sur l'écran PC 27 pouces Dell S2719DGF qui passe à 329 € au lieu de plus de 400 € ailleurs. L'écran à cadre fin dispose d'une dalle TN WQHD (2560x1440 pixels) 1 ms à 155 Hz. Il est compatible Freezync (Gsync via Adaptive Sync) et dispose de 4 prises USB (fait office de hub) et de 2 prises HDMI. Garantie 3 ans.


> Voir l'offre
29,99 €Clavier et Souris sans fil Microsoft Wireless Desktop 900 à 29,99 €
Valable jusqu'au 09 Juillet

Amazon fait une promotion sur le pack Microsoft Wireless Desktop 900 qui passe à 29,99 € livré gratuitement alors qu'on le trouve ailleurs à partir de 45 €. Cet ensemble clavier/souris Microsoft Wireless Desktop 900 est à la fois contemporain et minimaliste. Le clavier est doté de touches silencieuses offrant une expérience de frappe sereine et la souris de taille classique permet une navigation confortable et précise. Le clavier Wireless Desktop 900 est doté du chiffrement AES (Advanced Encryption Standard), qui vous permet de protéger vos informations en chiffrant votre saisie. La durée de vie de la pile est de 2 ans pour le clavier et pour la souris.


> Voir l'offre
22,17 €Souris sans fil Logitech M280 à 22,17 €
Valable jusqu'au 08 Juillet

Amazon fait une petite promotion sur la souris sans fil Logitech M280 qui passe à 22,17 €. On la trouve ailleurs à partir de 30 €. Sa forme profilée est adaptée aux droitiers. Son autonomie est de 18 mois (pile AA que vous pourrez remplacer).


> 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