Worksheet_Change(ByVal

fifi

XLDnaute Occasionnel
bonjour
juste une question bête...pourquoi ca marche pas :ermm:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Range('E6:E28')) Is Nothing Then
Target.Font.ColorIndex = 5
Selection.Font.ColorIndex = 5
End If

End Sub


le but étant de mettre en couleur la cellule selectionnée.

je ne vois pas pourquoi ca marche ..... :angry:

merci
 

Dan

XLDnaute Barbatruc
Bonjour,

Petite erreur dans le code...

Essaie ceci :

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range('E6:E28')) Is Nothing Then
Target.Interior.ColorIndex = 5
Selection.Font.ColorIndex = 15
End If
End Sub

;)
 

fifi

XLDnaute Occasionnel
éh éh en fait si ca marche ....
mais tout a fait comme je le pensais...
je m'attendais a ce que losrque je click dans la cellule elle change de couleur et pas qu'il faille changer son contenu (un double clic fonctionne)
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour lr fil, bonjour le forum,

Voilà ce que tu demandes avec ce code :
À chaque changement (édition) effectué dans la plage E6:E28, le texte de la cellule modifiée (Target) et celui de la sélection devient bleu.
Target est la cellule dans laquelle tu viens d’effectuer le changement.
La sélection peut être :
Target si tu as validé le changement avec [Ctrl]+[Entrée]
la cellule en dessous de Target si tu as validé le changement par [Entrée],
celle à droite de Target si tu as validé le changement par la touche [Tab],
celle dans laquelle tu as cliqué si tu as validé le changement en cliquant sur une autre cellule avec la souris,
ou une plage si tu as valider le changement avec la souris en sélectionnant une plage (assez bizarre quand même…)

Si tu effectues un changement en dehors de la plage E6:E28 le code n’agit pas.

En résumé, si tu veux mettre de la couleur bleu (au texte) dans la plage E6:E28 à chaque changement effectué dans cette plage, supprime juste la ligne Selection.Font.ColorIndex = 5.
 

fifi

XLDnaute Occasionnel
cela marche nikel par contre j'ai des plages discontinue sur lequelle j'aimerai que cela fonctionne,j'ai adapté le code comme ci-dessous et essayer de rajouter des OR mais rien n'y fait

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Not Application.Intersect(Target, Range('B2:B21') or  Range('G2:G21')) Is Nothing Then
With Target
If Selection.Interior.ColorIndex = 3 Then
Selection.Interior.ColorIndex = xlNone
Else
Selection.Interior.ColorIndex = 3

End If
End With
End If
End Sub
 

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour le fil, bonjour le forum,

Essaie comme ça :


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range('B2:B21,G2:G21')) Is Nothing Then
With Target
If .Interior.ColorIndex = 3 Then
.Interior.ColorIndex = xlNone
Else
.Interior.ColorIndex = 3
End If
End With
End If
End Sub

Je ne comprends pas pourquoi tu mets des Selection partout puisque Target indique déjà la cellule active...
 

Dan

XLDnaute Barbatruc
Re fifi,

Interior.ColorIndex = x -> pour placer la couleur dans la cellule
Font.ColorIndex = x -> pour mettre la police de caractère en couleur

Avec x équivalent au numéro de référence de la couleur.

Je suppose que c'est OK pour toi.

;)
 

Discussions similaires

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote