Je reviens sur mon sujet déjà traité et qui me repose problème. Il s’agit de compter des cellules de couleurs dans un tableau. On m’avait donné la réponse, que j’avais mis en pratique et qui a fonctionné …Hors, ça ne marche plus
La solution m’avait été donnée par mdo100 au mois de mars dernier.
Où ais-je bien pu pêché encore ? Je ne fais que rajouter des lignes dans mon tableau …
Je ne peux mettre mon fichier en ligne, il contient des renseignements personnels et confidentiels.
En vous remerciant, je vous souhaite un très bon WE.
Bonjour,
La fonction couleur n’est pas définie dans ton fichier
D’une manière générale c’est une mauvaise idée de stocker une information dans la couleur d’une cellule.
Il vaut mieux rajouter une colonne supplémentaire et y stocker cette information
Dans ce cas il vaut mieux ajouter une colonne pour avoir l’info dans Excel.
Ensuite pour garder le format de ton choix tu peux faire une mise en forme conditionnelle se basant sur cette colonne
@DMT, le 5 mars de cette année, je t’écrivais ceci:
“Ça ne pouvait pas fonctionner, puisqu’il y manquait le code VBA essentiel pour ce genre de requête Excel.”
Et bien je réitère mon propos, puisque tu commets la même erreur, a savoir qu’il n’y a pas le code VBA dans ton fichier
Tu disais " il est “bourrin” le DMT." Je vois que 4 mois plus tard, tu n’as pas changé
Bon allez rien que pour toi, je te remets le code:
Option Explicit
Function couleur(range_data As Range, criteria As Range) As Long
Dim datax As Range
Dim xcolor As Long
xcolor = criteria.Interior.ColorIndex
For Each datax In range_data
If datax.Interior.ColorIndex = xcolor Then
couleur = couleur + 1
End If
Next datax
End Function
Et ton fichier en retour ICI==>DMT V1.xlsm (36,5 Ko)
Déjà il s’agit d’une fonction personnalisée du même type que les autres fonctions propres à Excel (genre fonction SI, OU, ET etc…)
Bon en gros, avec mon anglais de nos campagnes françaises
Option Explicit
'Déclaration variable obligatoire
Function couleur(range_data As Range, criteria As Range) As Long
'Fonction couleur(type données en plage, type critère en plage) en type arrondies à 0,5 au nombre pair le plus proche
Dim datax As Range
'Déclaration de la variable datax en plage
Dim xcolor As Long
'Déclaration de la variable xcolor en type arrondies à 0,5 au nombre pair le plus proche
xcolor = criteria.Interior.ColorIndex
'Variable = le critère de la couleur intérieur de la cellule
For Each datax In range_data
'Pour chaque variable datax dans la plage
If datax.Interior.ColorIndex = xcolor Then
'Si la variable datax intèrieur de la couleur = à la couleur recherchée
couleur = couleur + 1
'Compteur couleur = couleur + 1
End If
'Fin de la condition
Next datax
'Fin de la boucle
End Function
'Fin de la fonction
Voilà, voilà… J’espère que cela t’aidera un peu a comprendre.