colorer une cellule avec une macro

P

Pascal

Guest
Bonjour le forum,
j'ai tout exoliquer dans l'exemple :).
Merci et @+ [file name=exemple_20060123092005.zip size=2392]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/exemple_20060123092005.zip[/file]
 

Pièces jointes

  • exemple_20060123092005.zip
    2.3 KB · Affichages: 36

Dan

XLDnaute Barbatruc
Bonjour,

Tu peux faire plus simple et sans macro.

1. dans ton fichier clique sur la cellule D3
2. Vas dans menu / excel / mise en forme conditi
3. Choisis 'la formule est' dans la rubrique de gauche
4. A droite colle cette formule -> =C3='OK'
5. Clique sur 'Format' et choisis ta couleur puis OK
6. Recopie ta cellule D3 vers le bas (jusque D7 dans ton exemple)

NB : Revérifie que la cellule D3 comporte bien la formule telle que je te l'ai donnée et adapte s'il le faut.

;)
 

Bricofire

XLDnaute Impliqué
Bonjour Pascal, Dan :)

Des fois Pascal que tu veuilles faire compliqué :) , ou bien que ta question ne soit que la partie emmergente de ce que te cherches... Une soluce avec macro.
A mettre dans la feuille1, voir fichier ;)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Cell As Range

If Not Intersect(Target.Columns, Columns('C')) Is Nothing Then
'Test : si la négation de l'intersection de la colonne de la cellulle selectionnée avec _
la colonne C est rien (donc négation de : (on n'a pas cliqué dans une case qui nous intéresse..)= on a cliqué où on veut réagir)(permet d'utiliser Intersect dans un cadre booléen) alors ....
For Each Cell In Range(Range('C65536').End(xlUp), Range('C3'))
If Cell = 'OK' Then
Cell.Interior.ColorIndex = 3
Else
Cell.Interior.ColorIndex = 2
End If
Next Cell

End If
End Sub


Edition : Euh, remplace le 2 dans : Cell.Interior.ColorIndex = 2 par = xlNone ! c'est beaucoup mieux !

Bonne journée,

Brico [file name=RepPascal.zip size=8278]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/RepPascal.zip[/file]

Message édité par: bricofire, à: 23/01/2006 10:17
 

Pièces jointes

  • RepPascal.zip
    8.1 KB · Affichages: 19
P

Pascal

Guest
bonjour Dan, le forum

Dans ce cas je ne peux plus au bout de la 2eme actualisation faire la différence entre ce qui a étais validé avant et apres. donc je risque de retraiter des prix que j'ai deja traité a la première actualisation.
C pour ca que je préfère la notion de bouton.

Merci.
 

Bricofire

XLDnaute Impliqué
Bonjour toue le monde, :)

J'ai l'impression pascal, que ma macro va te poser le même pb que la soluce de Dan, il suffit sion de passer le code de l'évènementiel change à celui clic d'un bouton. Je t'envoie ça, précises + sinon si besoin :)
A+
Brico
 

Bricofire

XLDnaute Impliqué
Re tout le monde, :)

Une apprche par 'acné software' :)

Private Sub CommandButton1_Click()
Dim Cell As Range
For Each Cell In Range(Range('C65536').End(xlUp), Range('C3'))
If Cell = 'OK' Then
Cell.Interior.ColorIndex = 3
Else
Cell.Interior.ColorIndex = xlNone
End If
Next Cell

End Sub

Attention à la Casse !! C'est OK, pas ok

Si tu scannes ta colonne manuellement pour ne mettre que des Ok ou NON, tu gagnerais peut-être à faire tes entrées via une validation de données, tu gagnerais du temps et éviterait surtout des fautes de frappe, quoique avec les listes auto de Excel ??
Bonne journée,
Brico ;) [file name=RepPascal_20060123103350.zip size=11417]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/RepPascal_20060123103350.zip[/file]
 

Pièces jointes

  • RepPascal_20060123103350.zip
    11.1 KB · Affichages: 27

Discussions similaires

Réponses
31
Affichages
1 K

Membres actuellement en ligne

Statistiques des forums

Discussions
312 429
Messages
2 088 350
Membres
103 823
dernier inscrit
ben talha redouane