Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

colorindex

E

Evelynetfrancois

Guest
bonjour a vous !

je vous solicite ce matin pour une petite macro !

Comment mettre la cell "A1" en colorindex =6 (par exemple)
quand je clic , soit sur B1 soit sur C1 ou sur D1 ?
mais uniquement lorsque b1 c1 d1 sont une des cells cliquées
sinon colorindex= xlnone
et idem pour A2 ;.A3.......A40
MERCI d'avance pour vos sujetions

bon mardi
E et F
 
E

Eric C

Guest
Bonjour le forum
Bonjour Evelynetfrancois

Peut être qu'avec ceci :


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$B$1" Or Target.Address = "$C$1" Or Target.Address = "$D$1" Then

Range("A1").Select
With Selection.Interior
.ColorIndex = 6
End With
End If
End Sub

@ ++ Eric C
 
E

Evelynetfrancois

Guest
bonjour eric
1) Merci beaucoup !!!!

2)il faudrait que la cellule cliqué reste la cell active ! et non pas A1

3) que ce principe fonctionne sur toutes les row !

4)seule la cell "A x" de la row cliqué devient jaune

exemple (si je clique D6 , c'est A 6 qui devint jaune )

j'espere etre clair !!
a bientot
E et F
 
B

Bernard

Guest
Bonjour le forum
Bonjour Evelynetfrancois

Une autre approche afin de couvrir les 40 lignes :

Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim L As Byte
For L = 1 To 40
If Cells(L, 1).Row = ActiveCell.Row And ActiveCell.Column = 2 _
Or Cells(L, 1).Row = ActiveCell.Row And ActiveCell.Column = 3 _
Or Cells(L, 1).Row = ActiveCell.Row And ActiveCell.Column = 4 Then
Cells(L, 1).Interior.ColorIndex = 6
Else
Cells(L, 1).Interior.ColorIndex = xlNone
End If
Next L
End Sub

Cordialement

Bernard
 
R

Robert

Guest
Salut Evelyne et François, Eric, le forum,

En reprenant l'idée de base d'Éric, je pense que la macro ci-dessous respecte ton "cahier des charges".

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 2 Or Target.Column = 3 Or Target.Column = 4 Then
Cells(Target.Row, 1).Interior.ColorIndex = 6
End If
End Sub

À plus,

Robert
 
C

CHti160

Guest
bonjour"Evelynetfrancois"

Salut à tous
bonjour le "FORUM"
une petite contribution qui peut être améliorée sûrement
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Lgn As Integer
Dim col As Byte
If Intersect(Target, Columns(1)) Is Nothing Then
If Target.Columns.Count = 1 Then
Lgn = Target.Row
Cells(Lgn, 1).Interior.ColorIndex = 6
End If
End If
End Sub
A+++
Jean Marie
 
E

Evelynetfrancois

Guest
MERCI à vous tous ........ lol
là je dois prendre la route ...........
je ferais tous les essais necessaire dans la soirée
je vous tiens au courant sans faute !!!!
encore un tres grand M e r c i
bonne journée
E et F
 
E

Evelynetfrancois

Guest
Merci Bernard ; Robert et Chtil60
je vous REMERCIE pour le temps que vous avez consacré à mon prob!
c'est exatement ce que Bernard a ecrit qui me convient !!
cependant
les autres macros ne sont pas denuées d'interets !!!
je mets tous ça de coté
je vous souhaite une bonne journée
et au plaisir de vous lire............
E et F
 
B

Bernard

Guest
Bonjour le forum

Bonjour Evelynetfrancois

Comme cela te convient, je modifie légèrement la macro en plus simple :
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim L As Byte
For L = 1 To 40
If Cells(L, 1).Row = ActiveCell.Row And ActiveCell.Column >= 2 And ActiveCell.Column >= 4 Then
Cells(L, 1).Interior.ColorIndex = 6
Else
Cells(L, 1).Interior.ColorIndex = xlNone
End If
Next L
End Sub

Cordialement

Bernard
 
C

CHti160

Guest
Bonjour "Evelynetfrancois" salut "Bernard"
Bonjour le "FORUM"
ici on est une équipe donc je me permet Bernard de corriger la petite erreur qui c'est glisser dans ton code en Gras
de plus si l'on veut que la couleur reste affichée, supprimer la partie en Italic

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim L As Byte
For L = 1 To 40
If Cells(L, 1).Row = ActiveCell.Row And ActiveCell.Column >= 2 [b/]And ActiveCell.Column <= 4 Then
Cells(L, 1).Interior.ColorIndex = 6
Else
Cells(L, 1).Interior.ColorIndex = xlNone
End If
Next L
End Sub
A+++
Jean Marie
 
B

Bernard

Guest
Bonjour à tous


Bien vu Jean Marie, faute de frappe, dans ma promptitude à alléger la macro ;
Je pense cependant que E et F ne souhaite pas que la couleur reste affichée donc je conserve :

Else
Cells(L,1).interior.ColorIndex=xlNone 'Lol

Bye

Bernard
 

Discussions similaires

Réponses
3
Affichages
199
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…