Changer la couleur des lignes en fonction de la valeur
Bonjour à tous, je me permets de vous déranger pour vous soumettre un problème. Je dois faire un code vba qui change les couleurs des lignes d'un tableau Excel en fonction de la valeur. Les données sont les suivantes
La feuille Excel "Options" recense une liste d’élèves et d’options. Un élève suivant une option est réprésenté par un "X" dans la cellule correspondante.
1. Créer des feuilles supplémentaires pour ce classeur, chacune au nom des différentes options proposées.
2. Recenser sur ces feuilles la liste des noms et prénoms des élèves suivant l’option correspondante. 3. Remplir la dernière colonne et la dernière ligne du tableau dans la feuille "Base".
4. Affecter une couleur à chaque ligne du tableau de la feuille "Base" en fonction du nombre d’options choisies par chaque élève, et colorier.
5. Renseigner au moyen d’une MsgBox la liste des élèves n’ayant choisi aucune option. Faire en sorte que le message s’affiche dès l’ouverture du classeur.
J'ai réussi par la méthode conditionnelle (Excel) mais pas par un code vba
Bonjour,
Jojo2168 a écrit :J'ai réussi par la méthode conditionnelle (Excel) mais pas par un code vba
Et justement juste des mise en formes conditionnelle ne suffisent pas? pourquoi forcément passer par du vba si cela fonctionne déjà ce que tu veux faire?
Sinon pour t'aider dans tes macros, dans ta feuille de base (ajouter une colonne qui fait la somme de X dans les colonnes des options disponibles) ou alors par vba (boucler sur toute les colonnes et compter le nombre de X)
Et par vba donc pour changer la couleur il y a plusieurs choix mais un simple
'on regarde la colonne ou on a la somme de X ici la cellule A2 dans cet exemple
Select Case Cells(2, 1).Value
'case ou la cellule vaut 1
Case "1"
Cells(2, 1).Interior.Color = 255 'couleur rouge de base
Case "2"
Cells(2, 1).Interior.Color = 5287936 'couleur verte de base
'faire tous les cas possible que tu veux selon la valeur
'enfin si on ne recontre aucune des valeurs ci-dessus, on prend par défaut du blanc
Case Else
Cells(2, 1).Interior.Pattern = xlNone
End SelectEDIT: Pour mettre des couleurs en plus, utilise simplement l'enregistreur de macro sur une cellule et applique une couleur de base et copier le .color que cela donne.
Bien sur c'est à adapter dans la macro
Et je lis
Jojo2168 a écrit :1. Créer des feuilles supplémentaires pour ce classeur, chacune au nom des différentes options proposées.
Question bête, pourquoi les feuilles ne peuvent-elle pas être dans le classeur de base? c'est un classeur destiné aux élèves et donc avec le moins d'informations possible ou qu'ils ne puissent pas voir tout ça? comment le fichier fonctionnera juste pour savoir
Par contre une msgox qui remplie la liste des élèves sans options? comment cela (c'est lié à ma question du dessus un peu)?
C'est plutôt un professeur qui va remplir le fichier et donc le rappel est pour lui? il vaudrait mieux faire une listbox de tous les élèves (on boucle sur la cellule ou l'on calcul le total d'option -ou on le fait à ce moment la - et si c'est égale à 0 alors on va chercher le nom et on l'ajoute dans une listbox et enfin on affiche la listebox dans un userform ou directement dans excel, au choix.
On pourrais afficher dans une msgbox 1 par 1 les élèves mais s'il y en a 300 et comme au début personne n'aura remplie les cases ou alors le professeur n'aura pas reporté les choix... il faudra cliquer 300 fois sur OK pour chaque msgbox .... puis par exemple 299 fois la seconde fois qu'on ouvre si on a renseigné qu'un élève la première fois... de quoi devenir fou
Voila de quoi commencer à réfléchir sur ton fichier.
ECG
Merci beaucoup pour les éclaircissement .
Je m'y remet et je vous reviens bientôt
Merci