Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/10/2011, 12h37   #1
Candidat au titre de Membre du Club
 
Homme David
profession libérale
Inscription : octobre 2011
Messages : 28
Détails du profil
Informations personnelles :
Nom : Homme David
Localisation : France

Informations professionnelles :
Activité : profession libérale
Secteur : Santé

Informations forums :
Inscription : octobre 2011
Messages : 28
Points : 13
Points : 13
Par défaut compter des cellules avec une couleur de fond et une couleur de police

Bonjour,


je cherche à créer une fonction pour compter des cellules de couleurs contenant un texte dune certaine couleur dans un planning, c'est à dire que je veut par exemple compter toutes les cellules rouge, mais uniquement celles écrites en bleu (et ce, quelles ques soient les autres caractéristiques de police) ; en claire, une celle rouge écrite en bleu et gras est comptée, de même qu'une cellule rouge écrite en bleu et italique, mais pas une cellule rouge écrites en jaune ni une cellule verte.
NB : de plus, la couleur de cellule et la couleur de police doivent être désignées par le choix d'une cellule (ou de deux) lors de l'utilisation de la fonction.
On trouve facilement plusieurs macro vba pour compter les couleurs (une ou plusieurs d'ailleurs) mais pas qui en plus tiennent compte d'un caractère de police (et un seul). Je n'arrive pas à en bidouiller un par moi-même;
Merci d'avance pour celui qui a
darkvadave est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2011, 12h51   #2
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
Bonjour

à adapter dans les codes que tu as trouvé

Code :
    If Cell.Interior.ColorIndex = 3 And Cell.Font.ColorIndex = 5 Then
Tu dis
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 03/11/2011, 11h45   #3
Candidat au titre de Membre du Club
 
Homme David
profession libérale
Inscription : octobre 2011
Messages : 28
Détails du profil
Informations personnelles :
Nom : Homme David
Localisation : France

Informations professionnelles :
Activité : profession libérale
Secteur : Santé

Informations forums :
Inscription : octobre 2011
Messages : 28
Points : 13
Points : 13
Merci (en fait , j'avais essayé mais je m'était arreté à la 1ère utilisation de la fonction car le résultat intermédiaire dans la barre de saisie me donnait le résultat "couleur de fond" sans donner le résultat final (couleur de fond et couleur de police) et me donnait l'impression de ne pas avoir le bon résultat).
Merci encore.
darkvadave est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2011, 11h54   #4
Membre Expert
 
Avatar de Jean-Pierre49
 
Homme J-Pierre Catherine
Conception Calcul
Inscription : juillet 2007
Messages : 659
Détails du profil
Informations personnelles :
Nom : Homme J-Pierre Catherine
Âge : 57
Localisation : France, Maine et Loire (Pays de la Loire)

Informations professionnelles :
Activité : Conception Calcul
Secteur : Industrie

Informations forums :
Inscription : juillet 2007
Messages : 659
Points : 1 856
Points : 1 856
Bonjour

Citation:
Merci (en fait , j'avais essayé mais je m'était arreté à la 1ère utilisation de la fonction car le résultat intermédiaire dans la barre de saisie me donnait le résultat "couleur de fond" sans donner le résultat final (couleur de fond et couleur de police) et me donnait l'impression de ne pas avoir le bon résultat).
Merci encore.
Et ?
As-tu obtenu le résultat escompter ?
__________________
Jean-Pierre Pensez à Voter pour les réponses qui vous ont aidés, d'avance merci
---------Et n'oubliez pas de mettre : ..quand c'est le cas !---------
Jean-Pierre49 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/11/2011, 16h36   #5
Candidat au titre de Membre du Club
 
Homme David
profession libérale
Inscription : octobre 2011
Messages : 28
Détails du profil
Informations personnelles :
Nom : Homme David
Localisation : France

Informations professionnelles :
Activité : profession libérale
Secteur : Santé

Informations forums :
Inscription : octobre 2011
Messages : 28
Points : 13
Points : 13
Oui :
voila la fonction :
Code :
1
2
3
4
5
6
7
8
9
Function ColorCountIntFont(SearchArea As Object, BgColor As Range) As Integer
Application.Volatile True
ColorCountIntFont = 0
MaCoul = BgColor.Interior.ColorIndex
MaPol = BgColor.Font.ColorIndex
    For Each Cell In SearchArea
If Cell.Interior.ColorIndex = MaCoul And Cell.Font.ColorIndex = MaPol Then ColorCountIntFont = ColorCountIntFont + 1
Next Cell
End Function
Ex : on fait un tableau avec des cellules colorées contenant 3 cellules rouges dont 1 est écrite en vert : si on utilise la fct en sélectionnant le tableau et la cellule rouge écrite en vert, on obtient bien la réponse 1 (mais lors de la saisie, le résultat donné en bas du cadre de saise indiquera 3 (donc a priori le réultat partiel "nb de cell rouges)
NB : on pt facilement intégrer d'autres caractères de champs comme gras, surligné... = le but est de compter dans un planning les jours de présence ou d'absence mais surtout de pouvoir ventiler le résultat en fonction du motif (congé, maladie,pont...) ou ajouter d'autres contraintes comme les garde de nuit (par exemple : couleur verte = présence mais en plus, si c'est écrit en bleu, =de garde la nuit......... d'où la possibilité de faire un planning plus lisible.
Mon problème suivant est de simplifier le remplissage du planning : j'ai déjà installé une macro faisant apparaitre automatiquement une barre d'outils de saisie (chaque bouton correspond à une cellule d'une liste dont on peut facilement modifier les propriétés de couleur, de police...et autres si besoin : la seule contrainte est de retoucher la macro si on veut modifier le nb de cellules de la liste).
Les problèmes suivants sont :
- créer une macro pour colorer une ligne (entière ou si possible une plage de cellules) en fonction de la valeur d'une cellule de cette ligne (=permet de surligner les dimanches, les jours fériés...)
- créer une macro pour faire un remplissage rapide du planning (dans la colonne de gauche du calendrier, on a 365 lignes correspondant aux dates ; les colonnes suivantes correspondes aux personnes; les colonnes précédentes contiennet des valeurs indiquant le N° du jour dans la semaine, le N° de semaine, si on est un JF... : qd on sait que quelqu'un est présent tous les lundis, mardis, mercredis, vendredis et samedis, mais absent les jeudis, ça doit être possible de faire une macro pour remplir les cellules de façon quasi instantanée et ne laissant donc qu'à gérer les congés
-créer une macro pour saisir rapidement les congés (le problème n'est pas de de colorer les cellules de la personne en congé car c'est facile avec la barre de saisie, mais bel et bien de modifier le planning de ceux qui ne sont pas en vacances (en clair, quand on saisit une semaine de congés pour M. Absent, Mme Présente doit travailler le mercredi alors que d'habitude c'est un jour de repos)
...
Bref, c'est un peu long ; d'ailleurs ce n'est pas le sujet : je poserai les questions sur le forum si je n'y trouve pas de solution (j'aime bien me creuser un peu la tête avant).
darkvadave est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h09.


 
 
 
 
Partenaires

Hébergement Web