VBA: utilisation de MSFlexGrid ou Datagrid avec checkbox
-=[ArsoN]=-
-
25 mai 2001 à 17:43
xroot16x
Messages postés2Date d'inscriptionlundi 19 janvier 2004StatutMembreDernière intervention11 février 2005
-
11 févr. 2005 à 14:40
Je travaille présentement à un système de paye en vba et je voudrais savoir quelle type de grille est le plus facile à utiliser
Également, je cherche comment mettere un checkbox dans une grille. je crois que seulement 1 des 2 type de grilles le supporte, mais lequel!
cs_tecman
Messages postés63Date d'inscriptionmercredi 5 mars 2003StatutMembreDernière intervention29 juin 2005 21 juil. 2004 à 20:43
Salut.
Deux type de grille sont principalement utilisées :
* MSFlexGrid
* DataGrid
J'ai toujours préféré la seconde, car il suffit d'y associer une connexion via un Adodbc pour qu'elle se remplisse totalement.
La première, quant à elle, permet de pouvoir effectuer des mises en forme plus "fun".
Si tu veux adjoindre un checbox dans une datagrid voici le code (il n'est pas de moi) :
--------------------------------------------------------------------------------
Private Sub datagrid1_ButtonClick(ByVal ColIndex As Integer)
On Error Resume Next
Select Case ColIndex
Case 3
' ici on travaille sur la colonne 4 du datagrid (index 0,1,2,3)
' la propriété visible du combo1 est FALSE
combo1.Width = datagrid1.Columns(3).Width
combo1.Left = datagrid1.Left + datagrid1.Columns(3).Left
combo1.Top = datagrid1.RowTop(datagrid1.Row) + datagrid1.Top
combo1.SetFocus
combo1.Text = datagrid1.Columns(3).Value ' on charge le combo avec le contenu de la cellule active
combo1.Visible = True ' le combo est correctement placé..on le rend visible
End Select
End Sub
' ici on applique la valeur de sélection du combo à la cellule active
Private Sub Combo1_Click()
On Error Resume Next
datagrid1.Columns(3).Value = Combo1.Text
Combo1.Visible = False ' on cache à nouveau le combo....
End Sub
1toun
Messages postés7Date d'inscriptionvendredi 12 septembre 2003StatutMembreDernière intervention 3 janvier 2006 22 sept. 2004 à 17:46
Salut arson...
a tu eu ta reponse?
j'ai le meme probleme, je veux mettre une case à cocher dans ma grid et non une liste deroulante comme l'indique tecman.
xroot16x
Messages postés2Date d'inscriptionlundi 19 janvier 2004StatutMembreDernière intervention11 février 2005 11 févr. 2005 à 14:40
xroot16x
Une solution simple, qui donne "l'illusion" d'une case à cocher et qui est trés facile à gérer : il suffit de faire une colonne assez fine, d'associer la police Webdings à la cellule sur laquelle on travaille et de mettre le caractère 'a'... Il suffit ensuite de gérer le click sur la case...
"a" signifie qu'il y a la coche
"" signifie qu'il n'y a pas la coche
Private Sub MSFlexGrid1_Click()
If MSFlexGrid1.Row=2 And MSFlexGrid1.Col=4 then
MSFlexGrid1.CellFontName = "Webdings"
Select Case MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, MSFlexGrid1.Col)
Case ""
MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, MSFlexGrid1.Col) = "a"
Case "a"
MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, MSFlexGrid1.Col) = ""
Case Else
MSFlexGrid1.TextMatrix(MSFlexGrid1.Row, MSFlexGrid1.Col) = ""
End Select
End If
End Sub