Changer la couleur d'une ligne d'un MSHFLEXGRID
Résolu
PhilippeF
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Lors du chargement d'un Mshflexgrid le mets de la couleur une ligne sur 2. Pas de problème pour cette partie.
Lors d'un double clic sur une ligne je change la couleur de la ligne sélectionnée. Pas de soucis ici aussi.
Le problème se pose lorsque je fais un double clic sur une autre ligne. La ligne change bien de couleur mais la ligne précédemment cliquée reste sur la même couleur. Je voudrais que la ligne précédemment cliquée revienne à sa couleur initiale.
Le code pour mettre de la couleur 1 ligne sur 2 dans la grille
Le code du double clic sur une ligne de la grille
Le code marche bien mais si je refais un double clic sur une autre ligne la première ligne reste avec la couleur de la ligne cliquée.
Si vous avez une idée ....
Merci d'avance
Lors du chargement d'un Mshflexgrid le mets de la couleur une ligne sur 2. Pas de problème pour cette partie.
Lors d'un double clic sur une ligne je change la couleur de la ligne sélectionnée. Pas de soucis ici aussi.
Le problème se pose lorsque je fais un double clic sur une autre ligne. La ligne change bien de couleur mais la ligne précédemment cliquée reste sur la même couleur. Je voudrais que la ligne précédemment cliquée revienne à sa couleur initiale.
Le code pour mettre de la couleur 1 ligne sur 2 dans la grille
Sub Les_Couleurs() For r = 2 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
Le code du double clic sur une ligne de la grille
Private Sub GrilleCptes_DblClick() Dim bquecpte As String GrilleCptes.Col = 0 'défini la colonne où est inscrit l'id du compte idCompte = GrilleCptes.Text 'récupère l'id du compte GrilleCptes.Col = 2 bquecpte = GrilleCptes.Text GrilleCptes.Col = 1 'défini la colonne du numéro de compte TxtModCpte.Text = GrilleCptes.Text c = 1 For c = 0 To 3 GrilleCptes.Col = c GrilleCptes.CellBackColor = RGB(255, 255, 128) Next c End Sub
Le code marche bien mais si je refais un double clic sur une autre ligne la première ligne reste avec la couleur de la ligne cliquée.
Si vous avez une idée ....
Merci d'avance
Configuration: Windows / Chrome 76.0.3809.132
A voir également:
- Changer la couleur d'une ligne d'un MSHFLEXGRID
- Changer dns - Guide
- Partager photos en ligne - Guide
- Changer la couleur de la barre des taches - Guide
- Aller à la ligne excel - Guide
- Mètre en ligne - Guide
2 réponses
Après pas mal d'essais voilà ce j'ai fait. Testé plusieurs fois
au chargement de la grille on met de la couleur 1 ligne sur 2
la procédure pour remettre toutes les lignes à blanc
procédure quand on clique sur une cellule de la grille
au chargement de la grille on met de la couleur 1 ligne sur 2
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
la procédure pour remettre toutes les lignes à blanc
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 quand on clique sur une cellule de la grille
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
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
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