Si couleur cellule et si contient expression
Fermé
eZula
Messages postés
3391
Date d'inscription
samedi 26 avril 2008
Statut
Contributeur
Dernière intervention
8 mai 2021
-
18 nov. 2019 à 15:38
eZula Messages postés 3391 Date d'inscription samedi 26 avril 2008 Statut Contributeur Dernière intervention 8 mai 2021 - 21 nov. 2019 à 08:37
eZula Messages postés 3391 Date d'inscription samedi 26 avril 2008 Statut Contributeur Dernière intervention 8 mai 2021 - 21 nov. 2019 à 08:37
A voir également:
- Si couleur cellule et si contient expression
- Excel cellule couleur si condition texte - Guide
- Somme si couleur - Guide
- Excel si couleur cellule alors ✓ - Forum Excel
8 réponses
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 419
18 nov. 2019 à 16:18
18 nov. 2019 à 16:18
Bonjour
sans garantie
je n'ai pas le pack et ne peux pas vérifier, mais vous pouvez essayez
=NB.SI.ENS(NO_COULEUR('EST'!1:1048576);"255");'EST'!1:1048576;"JP"))
crdlmnt
sans garantie
je n'ai pas le pack et ne peux pas vérifier, mais vous pouvez essayez
=NB.SI.ENS(NO_COULEUR('EST'!1:1048576);"255");'EST'!1:1048576;"JP"))
crdlmnt
eZula
Messages postés
3391
Date d'inscription
samedi 26 avril 2008
Statut
Contributeur
Dernière intervention
8 mai 2021
392
18 nov. 2019 à 16:40
18 nov. 2019 à 16:40
Merci, Vaucluse
Une erreur est renvoyée mais je ne vois pas de quoi il s'agit ("êtes vus en train de taper une formule ?"...)
pour le code couleur j'ai vérifié il s'agit bien du 255, après je ne suis pas fermé à d'autres solutions si cela existe
je continue de chercher
Une erreur est renvoyée mais je ne vois pas de quoi il s'agit ("êtes vus en train de taper une formule ?"...)
pour le code couleur j'ai vérifié il s'agit bien du 255, après je ne suis pas fermé à d'autres solutions si cela existe
je continue de chercher
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 419
18 nov. 2019 à 16:48
18 nov. 2019 à 16:48
je n'ai pas grand chose d'autre à proposer sinon peut être ceci sans trop y croire
=SI(NO_COULEUR('EST'!1:1048576)="255";NB.SI('EST'!1:1048576;"JP"))
(avec ou sans les guillemets sur le 255
matricielle: entrer avec touche enter en maintenant les touches ctrl et shift enfoncées
mais peu de chance que cela fonctionne et vu le poids de la formule, mieux vaudrait limiter les plages en lignes et colonnes
=SI(NO_COULEUR('EST'!1:1048576)="255";NB.SI('EST'!1:1048576;"JP"))
(avec ou sans les guillemets sur le 255
matricielle: entrer avec touche enter en maintenant les touches ctrl et shift enfoncées
mais peu de chance que cela fonctionne et vu le poids de la formule, mieux vaudrait limiter les plages en lignes et colonnes
eZula
Messages postés
3391
Date d'inscription
samedi 26 avril 2008
Statut
Contributeur
Dernière intervention
8 mai 2021
392
18 nov. 2019 à 17:16
18 nov. 2019 à 17:16
Effectivement cela ne fonctionne pas
Pour ce qui est de la plage on peut la restreindre, très précisément à A18:AH154
Pour ce qui est de la plage on peut la restreindre, très précisément à A18:AH154
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 419
18 nov. 2019 à 17:49
18 nov. 2019 à 17:49
je ne connais pas la fonction couleur et je n'en dispose pas, donc difficile de vous aider
1°) est ce qu'elle compte au moins les cellules de couleurs sans prendre en compte ce qu'elle contiennent
2°)si la couleur change avec une MFC, prend elle en compte la couleur modifiée où la couleur d'origine,
1°) est ce qu'elle compte au moins les cellules de couleurs sans prendre en compte ce qu'elle contiennent
2°)si la couleur change avec une MFC, prend elle en compte la couleur modifiée où la couleur d'origine,
Mike-31
Messages postés
18354
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
1 janvier 2025
5 110
18 nov. 2019 à 19:54
18 nov. 2019 à 19:54
Salut mon ami,
je n'ai pas le temps de traiter cette discussion en plein déménagement, mais as tu songé à la syntaxe LIRE.CELLULE
voir cette publication
https://www.commentcamarche.net/applis-sites/bureautique/1521-compter-ou-additionner-des-cellules-colorisees-manuellement-dans-excel/
Cordialement
je n'ai pas le temps de traiter cette discussion en plein déménagement, mais as tu songé à la syntaxe LIRE.CELLULE
voir cette publication
https://www.commentcamarche.net/applis-sites/bureautique/1521-compter-ou-additionner-des-cellules-colorisees-manuellement-dans-excel/
Cordialement
via55
Messages postés
14509
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
2 janvier 2025
2 738
Modifié le 18 nov. 2019 à 23:08
Modifié le 18 nov. 2019 à 23:08
Bonsoir à tous
Je n'ai pas non plus le pack mais en regardant le lien fourni la fonction NO_COULEUR ne peut s'appliquer qu'à une cellule et pas à une plage
Il faut donc dans ton cas créer une fonction personnalisée qui dans une plage donnée va comptabiliser les cellules de la couleur indiquée et comportant l'item recherché
La voici, à mettre dans un module de l'éditeur VBA
La syntaxe de la fonction est :
=nb_si_ens_coul(plage à traiter;code couleur;"texte")
soit par ex =nb_si_ens_coul(EST!A18:AH154;255;"JP")
La fonction ne fonctionne qu'avec des couleurs mises manuellement , pas sur celles provenant d'une MFC
Cdlmnt
Via
Je n'ai pas non plus le pack mais en regardant le lien fourni la fonction NO_COULEUR ne peut s'appliquer qu'à une cellule et pas à une plage
Il faut donc dans ton cas créer une fonction personnalisée qui dans une plage donnée va comptabiliser les cellules de la couleur indiquée et comportant l'item recherché
La voici, à mettre dans un module de l'éditeur VBA
Function nb_si_ens_coul(plage As Range, coul As Integer, item As String) For Each cell In plage If cell.Interior.Color = coul And cell.Value = item Then n = n + 1 Next nb_si_ens_coul = n End Function
La syntaxe de la fonction est :
=nb_si_ens_coul(plage à traiter;code couleur;"texte")
soit par ex =nb_si_ens_coul(EST!A18:AH154;255;"JP")
La fonction ne fonctionne qu'avec des couleurs mises manuellement , pas sur celles provenant d'une MFC
Cdlmnt
Via
eZula
Messages postés
3391
Date d'inscription
samedi 26 avril 2008
Statut
Contributeur
Dernière intervention
8 mai 2021
392
Modifié le 19 nov. 2019 à 09:57
Modifié le 19 nov. 2019 à 09:57
Bonjour à tous,
Merci pour votre aide.
Je me suis penché un peu plus sur l'approche suggérée par via55.
Ces couleurs ne sont pas attribuées via une mfc, tant mieux.
A priori la fonction fait son travail, juste un détail, le résultat ne s'actualise pas s'il y a un changement.
Après une modification de couleur de cellule contenant le motif, il faut cliquer sur le résultat et re-valider la formule
Existe-t-il un moyen de faire en sorte que si une couleur change le décompte se fasse en temps réel sans action manuelle supplémentaire ? Il me semble avoir fait quelque chose dans le genre procédure évènementielle il y a quelques années mais je ne vois pas a différence avec une fonction...
Encore merci et bonne journée
Merci pour votre aide.
Je me suis penché un peu plus sur l'approche suggérée par via55.
Ces couleurs ne sont pas attribuées via une mfc, tant mieux.
A priori la fonction fait son travail, juste un détail, le résultat ne s'actualise pas s'il y a un changement.
Après une modification de couleur de cellule contenant le motif, il faut cliquer sur le résultat et re-valider la formule
Existe-t-il un moyen de faire en sorte que si une couleur change le décompte se fasse en temps réel sans action manuelle supplémentaire ? Il me semble avoir fait quelque chose dans le genre procédure évènementielle il y a quelques années mais je ne vois pas a différence avec une fonction...
Encore merci et bonne journée
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
via55
Messages postés
14509
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
2 janvier 2025
2 738
19 nov. 2019 à 11:47
19 nov. 2019 à 11:47
Bonjour
Rajoutes en début de macro l'instruction suivante :
Bonne journée également
Rajoutes en début de macro l'instruction suivante :
Application.volatile
Bonne journée également
eZula
Messages postés
3391
Date d'inscription
samedi 26 avril 2008
Statut
Contributeur
Dernière intervention
8 mai 2021
392
19 nov. 2019 à 13:52
19 nov. 2019 à 13:52
aïe, appremment, si je modifie la couleur d'une cellule rouge contenant "JP" en vert par exemple, il n'enlève pas 1
aurais-je loupé une étape ?
aurais-je loupé une étape ?
Function nb_si_ens_coul(plage As Range, coul As Integer, item As String)
Application.Volatile
For Each cell In plage
If cell.Interior.Color = coul And cell.Value = item Then n = n + 1
Next
nb_si_ens_coul = n
End Function
via55
Messages postés
14509
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
2 janvier 2025
2 738
Modifié le 19 nov. 2019 à 15:14
Modifié le 19 nov. 2019 à 15:14
Apparemment non
mais en fait après un changement de couleurs je m'aperçois que le recalcul ne se fait pas
donc en plus il faut à l'activation de la feuille dans laquelle il y a la formule la faire recalculer
Dans l'éditeur VBA tu doubles-clic sur le nom de la feuille dans l'arborescence et tu colle la macro suivante :
mais en fait après un changement de couleurs je m'aperçois que le recalcul ne se fait pas
donc en plus il faut à l'activation de la feuille dans laquelle il y a la formule la faire recalculer
Dans l'éditeur VBA tu doubles-clic sur le nom de la feuille dans l'arborescence et tu colle la macro suivante :
Private Sub Worksheet_Activate() ActiveSheet.Calculate End Sub
eZula
Messages postés
3391
Date d'inscription
samedi 26 avril 2008
Statut
Contributeur
Dernière intervention
8 mai 2021
392
20 nov. 2019 à 11:37
20 nov. 2019 à 11:37
Hello,
Tu veux dire imbriquer ce code dans le précédent, comme ceci :
En l'état ça ne fait pas le recalcul à la volée
Tu veux dire imbriquer ce code dans le précédent, comme ceci :
Private Sub Worksheet_Activate()
ActiveSheet.Calculate
End Sub
Function nb_si_ens_coul(plage As Range, coul As Integer, item As String)
Application.Volatile
For Each cell In plage
If cell.Interior.Color = coul And cell.Value = item Then n = n + 1
Next
nb_si_ens_coul = n
End Function
En l'état ça ne fait pas le recalcul à la volée
via55
Messages postés
14509
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
2 janvier 2025
2 738
Modifié le 20 nov. 2019 à 12:32
Modifié le 20 nov. 2019 à 12:32
Bonjourr
Non je n'ai pas dit d'imbriquer le code
la Function est dans un module
Le code de recalcul lui doit être dans le worksheet de la feuille dans laquelle s’applique la fonction, je te disais bien :
Dans l'éditeur VBA tu doubles-clic sur le nom de la feuille dans l'arborescence et tu colles la macro suivante :
quand tus as double-cliqué sur le nom de la feuille concernée une page blanche s'affiche à droite, c'est là que tu colle la macro
Non je n'ai pas dit d'imbriquer le code
la Function est dans un module
Le code de recalcul lui doit être dans le worksheet de la feuille dans laquelle s’applique la fonction, je te disais bien :
Dans l'éditeur VBA tu doubles-clic sur le nom de la feuille dans l'arborescence et tu colles la macro suivante :
quand tus as double-cliqué sur le nom de la feuille concernée une page blanche s'affiche à droite, c'est là que tu colle la macro
eZula
Messages postés
3391
Date d'inscription
samedi 26 avril 2008
Statut
Contributeur
Dernière intervention
8 mai 2021
392
Modifié le 21 nov. 2019 à 08:38
Modifié le 21 nov. 2019 à 08:38
Edité
en cours...
en cours...