Bonjour,
Mon problème était le suivant : Lors d'un clic sur une ligne je changeais la couleur. Mais à chaque clic celle précédemment cliquée conservait la couleur liée au clic !!
Il fallait donc que je trouve un moyen de remettre 1 ligne sur 2 la couleur initiale de la grille et de mettre une couleur différente sur la ligne cliquée.
Je propose donc la solution suivante que j'ai testée plusieurs fois :
Au chargement de la grille je mets de la couleur une ligne sur 2
j'écris la procédure pour remettre toutes les lignes de la grille à blanc
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Sub Les_Couleurs() For r = 1 To GrilleCptes.Rows - 1 Step 2 GrilleCptes.Row = r For c = 0 To GrilleCptes.Cols - 1 GrilleCptes.Col = c GrilleCptes.CellBackColor = RGB(224, 255, 255) Next c Next r End Sub
procédure lors d'un clic sur une cellule de la grille
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Sub Lignes_blanc() For r = 1 To GrilleCptes.Rows - 1 GrilleCptes.Row = r For c = 0 To GrilleCptes.Cols - 1 GrilleCptes.Col = c GrilleCptes.CellBackColor = RGB(255, 255, 255) Next c Next r End Sub
Si cela peut servir, alors tant mieux
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Private Sub GrilleCptes_Click() Dim bquecpte As String GrilleCptes.Visible = False 'je cache la grille pour éviter d'apercevoir les procédures des couleurs rowclic = GrilleCptes.RowSel 'pour conserver la ligne sélectionnée. Variable déclarée Public Lignes_blanc 'pour remettre toutes les lignes à blanc Les_Couleurs 'pour mettre de la couleur 1 ligne sur 2 GrilleCptes.Visible = True 'j'affiche de nouveau la grille GrilleCptes.Col = 0 'défini la colonne où est inscrit l'id du compte GrilleCptes.Row = rowclic 'replace le curseur sur la ligne sélectionnée idCompte = GrilleCptes.Text 'récupère l'id du compte. Variable déclarée Public GrilleCptes.Col = 2 'place le curseur sur la colonne 2 pour récupérer la banque bquecpte = GrilleCptes.Text 'récupère le nom de la banque GrilleCptes.Col = 1 'place le curseur sur la colonne 1 pour récupérer le numéro de compte TxtModCpte.Text = GrilleCptes.Text 'écrit le numéro du compte c = 1 For c = 0 To 3 GrilleCptes.Col = c GrilleCptes.CellBackColor = RGB(255, 255, 128) 'change la couleur de la ligne sélectionnée Next c End Sub
Partager