Mise en forme conditionnelle

N

Nora

Guest
Bonjour forum !

Je cherche à changer la couleur des cellules en fonction de ce qui est saisi

j'utilise à la fois la mise en forme conditionelle pour traiter 3 couleurs puis le code pour traiter la derniere couleur et et le blanc en cas de non saisie

Comment faire pour traiter la colonne entiere ? pour le moment je ne traite la colonne A que de la ligne 1 à 1000.

Les temps de chargement sont assez long, surement parce que je balaye 2 fois la meme colonne. Que faire ?



------------------------------------

Private Sub Worksheet_Change(ByVal Target As Range)

For Each couleur In Range('a1:a1000')

If couleur.Text = 'J' Then
With couleur.Interior
.ColorIndex = 4
.Pattern = xlSolid
End With
End If

If couleur.Text = '' Then
With couleur.Interior
.ColorIndex = xlNone
.Pattern = xlSolid
End With
End If

Next

End Sub

-------------------------------

Merci

Nora
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour

Modifies comme ceci

Private Sub Worksheet_Change(ByVal Target As Range)

Dim c As Range

If Not Intersect(Target, Range('a1:a1000')) Is Nothing Then
For Each c In Target
With c.Interior
If c.Text = 'J' Then
.ColorIndex = 4
.Pattern = xlSolid
ElseIf c.Text = '' Then
.ColorIndex = xlNone
.Pattern = xlSolid
End If
End With
Next
End If

End Sub

Message édité par: Pascal76, à: 01/12/2005 11:50
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re

En fait le grand changement vient du fait que ton code regardé toutes tes lignes de 1 à 1000 et le mien ne regarde que la ou les cellules qui changent

Sinon il y a une autre erreur de copie dans le code

If c.Text = J Then

remplacé par

If c.Text = 'J' Then

Bizarre tous mes ' ont sauté

Je t'envoie tout de même un classeur [file name=Classeur6_20051201114823.zip size=6323]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur6_20051201114823.zip[/file]
 

Pièces jointes

  • Classeur6_20051201114823.zip
    6.2 KB · Affichages: 11

PascalXLD

XLDnaute Barbatruc
Modérateur
OUPS

Attends j'avais zappé une partie de ta question

J'étais resté sur le pbe de délai et pas sur la question toute la colonne

Il faut donc modifié la ligne

If Not Intersect(Target, Range('a1:a1000')) Is Nothing Then

par

If Not Intersect(Target, Range('A:A')) Is Nothing Then

Oups le fichier avec la nouvelle modif [file name=Classeur6_20051201115355.zip size=6279]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur6_20051201115355.zip[/file]
 

Pièces jointes

  • Classeur6_20051201115355.zip
    6.1 KB · Affichages: 11

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 977
dernier inscrit
Hermet