cs_rabli
Messages postés37Date d'inscriptionlundi 1 mai 2006StatutMembreDernière intervention11 mars 2010
-
24 juil. 2008 à 00:14
cs_rabli
Messages postés37Date d'inscriptionlundi 1 mai 2006StatutMembreDernière intervention11 mars 2010
-
26 juil. 2008 à 02:16
Salut, j'ai gravement besoin de votre aide.
Je ne trouve pas cmt faire pour avoir des listes de choix dans le premier champs de mon datagride. C'est tres urgent. SVP je compte bcp sur votre aide.
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 24 juil. 2008 à 01:02
Bonsoir,
Voici une façonparmi d' autreq.
*Coté conception
1°-Poses ta liste de choix sur tonDataGrid.
Propriété Visible=False
2°-Dans la page des propriétés du Datagrid,Onglet Disposition,
coches la propriété Button pour la colonne(champ)
de ton choix
*Coté code
Dans la
Sub DataGrid_ButtonClick(ByVal ColIndex As Integer)
Select Case ColIndex
Case :0 ' première colonne
Combo.Visible=True
Dim CCol As Column
Set CCol = DataGrid.Columns(ColIndex)
With Combo
.Top = DataGrid.RowTop(DataGrid.Row)
.Left = CCol.Left
.Width = CCol.Width
End With
Set CCol = Nothing
Combo.SetFocus
End Select
End Sub
Private Sub Combo_Click()
DataGrid.Col = 0 'toujours l' exemple 1° colonne
DataGrid.Text = Combo.Text
Combo.Visible=False
End Sub
Il faudra aussi penser à rendre tn Combo non visible
quand ton DataGrid reprend le focus sans avoir sélectionner
dans ton combo.
<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
cs_rabli
Messages postés37Date d'inscriptionlundi 1 mai 2006StatutMembreDernière intervention11 mars 2010 24 juil. 2008 à 11:02
désolé mais il y a un truc qui va pas :s
pour le Ccol il n'a pas de propriété left ou width je trouve uniquement:
Attributes
definedsize
name
numericscale
parentcatalog
precision
properties
relatedcolumn
sortorder
type
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 24 juil. 2008 à 20:14
Beh moi j' ai tout !
Dim CCol As Column
Set CCol = DataGrid1.Columns(0)
CCol.
tu auras toute la liste de propriétés et de méthodes<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
cs_rabli
Messages postés37Date d'inscriptionlundi 1 mai 2006StatutMembreDernière intervention11 mars 2010 25 juil. 2008 à 11:27
oui c ce que j'ai fait pour voir les methodes et propriétés que j'ai. mais c uniquement la liste d'en haut que j'ai.
Vous pensez que c'est dû à des references ou components manquants???
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 25 juil. 2008 à 14:19
Pour les références, dans mon exemple j' ai ceci:
-Microsoft DAO 3.xx Objet Librairy
-Microsoft DataBinding Collection
-Microsoft VisualBasic 6.0 Extensibility
<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
cs_rabli
Messages postés37Date d'inscriptionlundi 1 mai 2006StatutMembreDernière intervention11 mars 2010 25 juil. 2008 à 23:03
j'ai ces references sur mon projet et malgres ca ca ne marche pas :(
Je suis sur le point de deprimé . merci vraiment pour votre aide mais malheureusement ca marche pas. j'ai essayé sur un autre PC et c le meme resultat même si je trouve votre solution tres logique mais avez vous une autres facons de faire. Je dois rendre ce projet lundi.
cs_rabli
Messages postés37Date d'inscriptionlundi 1 mai 2006StatutMembreDernière intervention11 mars 2010 25 juil. 2008 à 23:08
J'ai unpeu modifier le code dans l espoire de trouver une issue.
Sub DataGrid_ButtonClick(ByVal ColIndex As Integer)
Select Case ColIndex
Case :0 ' première colonne
Combo.Visible=True
Dim CCol As Column
Set CCol = DataGrid.Columns(ColIndex) With Combo
.Top = DataGrid.RowTop(DataGrid.Row)
.Left = CCol.RelatedColumn ' ici
.Width = CCol.RelatedColumn 'ici
End With
Set CCol = Nothing
Combo.SetFocus
End Select
End Sub
Private Sub Combo_Click()
DataGrid.Col = 0 'toujours l' exemple 1° colonne
DataGrid.Text = Combo.Text
Combo.Visible=False
End Sub
Maintenant j'ai une erreur "Type mismatch" sur la ligne suivante:
Set CCol = DataGrid.Columns(ColIndex)
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 26 juil. 2008 à 00:16
Beh c' est logique dans le sens ou il n' as pas pris en compte ta variable cCol en tant que Column.
J' ai compris d' ou venait l' erreur ..(mon erreur )
Il s' agissait des deux malheureux deux point après Case. Case <strike>:</strike> 0
Ce qui explique peut être pourquoi tu n' as pas cCol.Left ni cCol.Width.
Réessayes avec
Sub DataGrid_ButtonClick(ByVal ColIndex As Integer)
If ColIndex=0 Then
Combo.Visible=True
Dim CCol As Column
Set CCol = DataGrid.Columns(ColIndex)
With Combo
.Top = DataGrid.RowTop(DataGrid.Row)
.Left = CCol.Left
.Width = CCol.Width
End With
Set CCol = Nothing
Combo.SetFocus
End If
End Sub
<hr />
... Y'en a même qui disent qu'ils l'ont vu voler.
LIBRE_MAX
Messages postés1402Date d'inscriptionmardi 1 mai 2007StatutMembreDernière intervention 7 octobre 20126 26 juil. 2008 à 00:31
Pour la solution de rechange, il y' a bien l' evenement MouseDwn, mais il faudra etre précis quand à la position que prendera ton combo.
Private Sub DataGrid_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If DataGrid.Col = 0 Then
With Combo
.Left = DataGrid.Left + X '+ou- qqchose)
.Top = DataGrid.Top + Y '+ou- qqchose)
.Visible=True
.SetFocus
SendKeys "{f4}" 'déroulera automatiquement la liste
End With
End If
End Sub
<hr />... Y'en a même qui disent qu'ils l'ont vu voler.
cs_rabli
Messages postés37Date d'inscriptionlundi 1 mai 2006StatutMembreDernière intervention11 mars 2010 26 juil. 2008 à 02:16
Private Sub DataGrid1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If DataGrid1.Col = 0 Then
With combo1
.Left = DataGrid1.Left + 12 '+ou- qqchose)
.Top = DataGrid1.Top + 12 '+ou- qqchose)
.Visible = True
.SetFocus
SendKeys "{f4}" 'déroulera automatiquement la liste
End With
End If
End Sub
Private Sub combo1_Click(Area As Integer)
DataGrid1.Col = 0 'toujours l' exemple 1° colonne
DataGrid1.Text = combo1.Text
combo1.Visible = False
End Sub
ca c le code que j execute; suivant la 2eme methode. et voila l erreur que j'obtient:
run-time error '28'
out of stake space
??????????? qu'est ce que ca veut dire SVP??????