VBA: utilisation de MSFlexGrid ou Datagrid avec checkbox

-=[ArsoN]=- - 25 mai 2001 à 17:43
xroot16x Messages postés 2 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 11 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!

merci!

3 réponses

cs_tecman Messages postés 63 Date d'inscription mercredi 5 mars 2003 Statut Membre Dernière intervention 29 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

--------------------------------------------------------------------------------

Bon courage.

@+

Tecman ;)
0
1toun Messages postés 7 Date d'inscription vendredi 12 septembre 2003 Statut Membre Derniè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.

peux tu m'aider?

8-) ***1toun***
0
xroot16x Messages postés 2 Date d'inscription lundi 19 janvier 2004 Statut Membre Dernière intervention 11 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
0
Rejoignez-nous