Worksheet_Change(ByVal

  • Initiateur de la discussion Initiateur de la discussion fifi
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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

😉
 
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.
 
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
 
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...
 
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.

😉
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
9
Affichages
508
Réponses
4
Affichages
521
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Retour