Macro Cellule condition couleur

Bonjour à tous, merci de m'accueillir dans votre forum

J'ai une liste de 15 proffesseurs et j'aimerais , quand je selectionne une cellule avec tri (ma liste de prof)qu'en choisissant mon prof, cette meme cellule changerait tout de suite de couleur (une couleur par prof) et que la cellule du dessus prenne la meme couleur.

Etant sur excel 2003, je ne peux utiliser plus de 3 mise en forme conditionnelle, or il m'en faut une dizaine. Cela passe donc par la macro.

J'ai essayé de me plonger dedansmais je n'y comprends pas grand choses.

merci de votre aide

Bonsoir,

envoie le fichier, pour voir ce qu'on peut faire

Amicalement

Claude.

bonjour à tous,

sentenza, voici un petit tableau qui devrait répondre à ton attente. Il s'agit d'une adaptation à ta question d'une macro qui m'a été fourni par Dan & Nad il y a quelques temps. Merci à eux encore!

https://www.excel-pratique.com/~files/doc2/Tableauprofforum.xls

Bien cordialement,

Elfi

sinon, si tu es dans l'education nationale, tu peux obtenir office 2007 gracieusement sur le site

@+

Merci à tous de vos réponses.

Je ne suis pas dans l'éducation nationale mais je tiens une salle de sport où je gere le planning des cours proposé.

plabrousse, c'est bien ça que je recherche;

La macro donne ça :

rivate Sub Worksheet_Change(ByVal Target As Range)

'Macro Dan & Nad - xl pratique le 03/12/08

If Target.Count > 1 Then Exit Sub

Select Case Target

Case Is = "ABDOU"

Target.Interior.ColorIndex = 53

Case Is = "ALAIN"

Target.Interior.ColorIndex = 35

Case Is = "CINDY"

Target.Interior.ColorIndex = 10

Case Is = "DIANA"

Target.Interior.ColorIndex = 42

Case Is = "EMILIE"

Target.Interior.ColorIndex = 46

Case Is = "FRANCO"

Target.Interior.ColorIndex = 38

Case Is = "GAELLE"

Target.Interior.ColorIndex = 40

Case Is = "GUILLAUME"

Target.Interior.ColorIndex = 27

Case Is = "GUYLAINE"

Target.Interior.ColorIndex = 14

Case Is = "HERMANN"

Target.Interior.ColorIndex = 36

Case Is = "MAGOMA"

Target.Interior.ColorIndex = 41

Case Is = "MORGANE"

Target.Interior.ColorIndex = 54

Case Is = "PASCAL"

Target.Interior.ColorIndex = 39

Case Is = "PIERRE-L"

Target.Interior.ColorIndex = 45

Case Is = "ROMAIN"

Target.Interior.ColorIndex = 28

Case Is = "RENE"

Target.Interior.ColorIndex = 20

Case Is = "SEBASTIEN"

Target.Interior.ColorIndex = 16

Case Is = "STEPHANIE"

Target.Interior.ColorIndex = 7

Case Else

Target.Interior.ColorIndex = -4142

End Select

End Sub

Comment faire à present pour, qu'une fois la case rempli et coloriée, la case juste au dessus se colorise aussi de la meme couleur ?

MErci

j'ai trouvé (en cherchant un peu sur le forum)

Private Sub Worksheet_Change(ByVal Target As Range)

'Macro Dan & Nad - xl pratique le 03/12/08

If Target.Count > 1 Then Exit Sub

Select Case Target

Case Is = "ABDOU"

Target.Interior.ColorIndex = 53

Target.Offset(-1, 0).Interior.ColorIndex = 53

Case Is = "ALAIN"

Target.Interior.ColorIndex = 35

Target.Offset(-1, 0).Interior.ColorIndex = 35

Case Is = "CINDY"

Target.Interior.ColorIndex = 10

Target.Offset(-1, 0).Interior.ColorIndex = 10

Case Is = "DIANA"

Target.Interior.ColorIndex = 42

Target.Offset(-1, 0).Interior.ColorIndex = 42

Case Is = "EMILIE"

Target.Interior.ColorIndex = 46

Target.Offset(-1, 0).Interior.ColorIndex = 46

Case Is = "FRANCO"

Target.Interior.ColorIndex = 38

Target.Offset(-1, 0).Interior.ColorIndex = 38

Case Is = "GAELLE"

Target.Interior.ColorIndex = 40

Target.Offset(-1, 0).Interior.ColorIndex = 40

Case Is = "GUILLAUME"

Target.Interior.ColorIndex = 27

Target.Offset(-1, 0).Interior.ColorIndex = 27

Case Is = "GUYLAINE"

Target.Interior.ColorIndex = 14

Target.Offset(-1, 0).Interior.ColorIndex = 14

Case Is = "HERMANN"

Target.Interior.ColorIndex = 36

Target.Offset(-1, 0).Interior.ColorIndex = 36

Case Is = "MAGOMA"

Target.Interior.ColorIndex = 41

Target.Offset(-1, 0).Interior.ColorIndex = 41

Case Is = "MORGANE"

Target.Interior.ColorIndex = 54

Target.Offset(-1, 0).Interior.ColorIndex = 54

Case Is = "PASCAL"

Target.Interior.ColorIndex = 39

Target.Offset(-1, 0).Interior.ColorIndex = 39

Case Is = "PIERRE-L"

Target.Interior.ColorIndex = 45

Target.Offset(-1, 0).Interior.ColorIndex = 45

Case Is = "ROMAIN"

Target.Interior.ColorIndex = 28

Target.Offset(-1, 0).Interior.ColorIndex = 28

Case Is = "RENE"

Target.Interior.ColorIndex = 20

Target.Offset(-1, 0).Interior.ColorIndex = 20

Case Is = "SEBASTIEN"

Target.Interior.ColorIndex = 16

Target.Offset(-1, 0).Interior.ColorIndex = 16

Case Is = "STEPHANIE"

Target.Interior.ColorIndex = 7

Target.Offset(-1, 0).Interior.ColorIndex = 7

Case Else

Target.Interior.ColorIndex = -4142

End Select

End Sub

bonjour,

juste une petite suggestion :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
Select Case UCase(Target)
Case Is = "ABDOU": i = 53
Case Is = "ALAIN": i = 35
Case Is = "CINDY": i = 10
Case Is = "DIANA": i = 42
Case Is = "EMILIE": i = 46
Case Is = "FRANCO": i = 38
Case Is = "GAELLE": i = 40
Case Is = "GUILLAUME": i = 27
Case Is = "GUYLAINE": i = 14
Case Is = "HERMANN": i = 36
Case Is = "MAGOMA": i = 41
Case Is = "MORGANE": i = 54
Case Is = "PASCAL": i = 39
Case Is = "PIERRE-L": i = 45
Case Is = "ROMAIN": i = 28
Case Is = "RENE": i = 20
Case Is = "SEBASTIEN": i = 16
Case Is = "STEPHANIE": i = 7
End Select
Target.Offset(-1).Resize(2).Interior.ColorIndex = i
End Sub

A+

Bonjour Sentenza,

Je vois que grâce à Nad, Dan et Gapolin, tu es arrivé à ta macro. Si ta solution est trouvée, pense à mettre "résolu" sur ta question.

Bien cordialement,

Elfi

En cas de problème rajouter Dim i as Byte au début de la macro...

Private Sub Worksheet_Change(ByVal Target As Range) 
Dim i as Byte
If Target.Count > 1 Then Exit Sub

le reste sans changement...

A+

galopin01 a écrit :

En cas de problème rajouter Dim i as Byte au début de la macro...

Private Sub Worksheet_Change(ByVal Target As Range) 
Dim i as Byte
If Target.Count > 1 Then Exit Sub

le reste sans changement...

A+

La nouvelle macro est effectivement confondante de simplicité. Merci encore galopin.

Celle çi fonctionne apparament sans problème. En quoi consiste le rajout de la ligne "Dim i as Byte" ?

Bonjour,

Le Dim as Byte est une déclaration de variable.

Indispensable à ceux qui ont coché Option Explicit dans leur VBA.

On le recommande souvent aux débutants...

A+

Rechercher des sujets similaires à "macro condition couleur"