Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Colorier une cellule sur un clic

7 réponses
Avatar
Bruno RCSC
Bonsoir,

Win XP, Excel 2002

Dans un récent post, on trouve le code suivant qui permet de colorier une
cellule lorsque l'on clique dessus pour un onglet donné.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

With Selection.Interior

.ColorIndex = 6

.Pattern = xlSolid

End With

End Sub



Que doit on faire pour que cette action ne se fasse que pour la colonne 5 de
l'onglet ?

Ou plus généralement pour une plage donnée ?

Objectif : pointer des écritures.



Merci pour votre aide.



BH

7 réponses

Avatar
Francois L
Bonsoir,

Win XP, Excel 2002

Dans un récent post, on trouve le code suivant qui permet de colorier une
cellule lorsque l'on clique dessus pour un onglet donné.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

With Selection.Interior

.ColorIndex = 6

.Pattern = xlSolid

End With

End Sub



Que doit on faire pour que cette action ne se fasse que pour la colonne 5 de
l'onglet ?



Bonsoir,

Par exemple
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column <> 5 Then Exit Sub
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
End Sub

--
François L

Avatar
Bruno RCSC
Merci François, cela fonctionne.

Et pour la plage E5:E62 ?

BH
Avatar
jps
bonjour bruno
comme ceci peut-être :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'If Target.Column <> 5 Then Exit Sub
With Range("E5:E62").Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
End Sub

HTH
jps

"Bruno RCSC" a écrit dans le message de news:
46268fce$0$5069$
Merci François, cela fonctionne.

Et pour la plage E5:E62 ?

BH





Avatar
Mytå
Salut

Une autre façon

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("E5:E62")) Is Nothing Then
With Target.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
End If
End Sub

Mytå
Avatar
LSteph
Bonjour les amis,
Et les sélections multiples alors hein, on vous l'a dit et répété!
;o)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim iSect as range, c as range
set isect=Intersect(Target, Range("E5:E62"))
If Not iSect Is Nothing Then
For each c in iSect.cells
with c.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
next
End If
End Sub

'lSteph

Merci François, cela fonctionne.

Et pour la plage E5:E62 ?

BH





Avatar
jps
:-)))))
encore que je ne vouaille pas beaucoup de sélections multiples dans la plage
qui intéresse bruno...mais bon, dès qu'il s'agit d'agresser ses petits
camarades dès potron-minet, toutes les féloneries sont bonnes....
jps

"LSteph" a écrit dans le message de news:
%
Bonjour les amis,
Et les sélections multiples alors hein, on vous l'a dit et répété!
;o)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim iSect as range, c as range
set isect=Intersect(Target, Range("E5:E62"))
If Not iSect Is Nothing Then
For each c in iSect.cells
with c.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
next End If
End Sub

'lSteph

Merci François, cela fonctionne.

Et pour la plage E5:E62 ?

BH






Avatar
LSteph
:-) Décodage:

En fait de multiple,...
si l'on veut pointer d'un coup une plage composée de multiples cellules.

Souvent les gens définissent l'intersection et ensuite traitent target
alors qu'on peut très bien traiter l'intersection.

Pour le reste,

encore que je ne vouaille pas beaucoup d'
inconvénient à rendre la monnaie de leur pièce à certains scuddateurs

invétérés pour lesquels même si ce sont parfois de bons
camarades dès potron-minet, toutes les féloneries sont bonnes....


:o))

@+

lSteph

:-)))))
encore que je ne vouaille pas beaucoup de sélections multiples dans la plage
qui intéresse bruno...mais bon, dès qu'il s'agit d'agresser ses petits
camarades dès potron-minet, toutes les féloneries sont bonnes....
jps

"LSteph" a écrit dans le message de news:
%
Bonjour les amis,
Et les sélections multiples alors hein, on vous l'a dit et répété!
;o)

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim iSect as range, c as range
set isect=Intersect(Target, Range("E5:E62"))
If Not iSect Is Nothing Then
For each c in iSect.cells
with c.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
next End If
End Sub

'lSteph

Merci François, cela fonctionne.

Et pour la plage E5:E62 ?

BH