J'essaie d'utiliser un exemple pour l'integrer dans une=20
appli et je n'arrive pas =E0 :
Supprimer le bouton OK et ses effets
je voudrais =E9galement, apr=E8s avoir saisi du texte dans=20
txtBox Valeur et tap=E9 sur Return, que la valeur s'affiche=20
dans la cellule du MSFlexGrid Grille, et que la txtBox=20
valeur se positionne dans la cellule suivante
Et quand la valeur de la derni=E8re cellule est saisie, je=20
voudrais que le curseur se positionne sur un bouton=20
Enregistre.
Pouvez-vous me dire ce qu'il faut faire, voici mon code :
Option Explicit
Private UsingMouse As Boolean
'---- Initialisations
Private Sub Form_Load()
Valeur.Visible =3D False
Dim i
' Nombre de lignes et colonnes
Grille.Rows =3D 5
Grille.Cols =3D 2
' Libell=E9s des lignes
Grille.Col =3D 0
For i =3D 1 To Grille.Rows - 1
Grille.Row =3D i
Grille.Text =3D i
Next
' Libell=E9s des colonnes
Grille.FixedAlignment(0) =3D vbCenter
Grille.Row =3D 0
For i =3D 1 To Grille.Cols - 1
Grille.FixedAlignment(i) =3D vbCenter
Grille.Col =3D i
Grille.Text =3D i
Next
' Position courante
Grille.Row =3D 1
Grille.Col =3D 1
KeyPreview =3D True
End Sub
'---- Touche de fonction
Private Sub Grille_KeyDown(KeyCode As Integer, Shift As=20
Integer)
If KeyCode =3D vbKeyEscape Then
' Echappement
Valeur.SetFocus
ElseIf KeyCode =3D vbKeyDelete Then
' Suppression
Grille.Clip =3D ""
Valeur.Text =3D Grille.Text
End If
End Sub
'---- Touche du clavier
Private Sub Grille_KeyPress(KeyAscii As Integer)
' Passe le caract=E8re au texte
Valeur.SetFocus
Valeur.Text =3D Chr$(KeyAscii)
Valeur.SelStart =3D 2
Valeur.SelLength =3D 0
End Sub
'---- Changement de position courante
Private Sub Grille_RowColChange()
Valeur.Text =3D Grille.Text
End Sub
' Changement de s=E9lection
Private Sub Grille_SelChange()
End Sub
'---- Bouton OK
'Private Sub OK_Click()
'Grille.Text =3D Valeur.Text
'Grille.SetFocus
'Valeur.Visible =3D False
'End Sub
'---- Colonne de d=E9but de la s=E9lection
Private Function SelStartCol(grd As MSFlexGrid)
If grd.ColSel < grd.Col Then SelStartCol =3D grd.ColSel=20
Else SelStartCol =3D grd.Col
End Function
'---- Colonne de fin de la s=E9lection
Private Function SelEndCol(grd As MSFlexGrid)
If grd.ColSel > grd.Col Then SelEndCol =3D grd.ColSel=20
Else SelEndCol =3D grd.Col
End Function
'---- Ligne de d=E9but de la s=E9lection
Private Function SelStartRow(grd As MSFlexGrid)
If grd.RowSel < grd.Row Then SelStartRow =3D grd.RowSel=20
Else SelStartRow =3D grd.Row
End Function
'---- Ligne de fin de la s=E9lection
Private Function SelEndRow(grd As MSFlexGrid)
If grd.RowSel > grd.Row Then SelEndRow =3D grd.RowSel=20
Else SelEndRow =3D grd.Row
End Function
Private Sub Grille_LeaveCell()
'Se produit imm=E9diatement avant qu'une cellule diff=E9rente=20
ne devienne la cellule active
Valeur.Visible =3D True
Valeur.Text =3D ""
End Sub
Private Sub Grille_EnterCell() ' Assign cell value to the=20
textbox
Valeur.Text =3D Grille.Text
End Sub
Private Sub Valeur_GotFocus()
Grille.Text =3D Valeur.Text
ChangeCellText
End Sub
Private Sub Grille_MouseDown(Button As Integer, Shift As=20
Integer, X As Single, Y As Single)
UsingMouse =3D True
Grille.Text =3D Valeur.Text
ChangeCellText
End Sub
'---- On quitte le champ de saisie
Private Sub valeur_LostFocus()
If UsingMouse =3D True Then
UsingMouse =3D False
Exit Sub
End If
ChangeCellText
End Sub
Public Sub ChangeCellText()
'deplace la textbox dans la cellule active
Valeur.Move Grille.left + Grille.CellLeft, _
Grille.top + Grille.CellTop, _
Grille.CellWidth, Grille.CellHeight
Valeur.SetFocus
Valeur.ZOrder 0
End Sub
Sub valeur_KeyPress(KeyAscii As Integer)
If Valeur.Visible =3D False Then
Valeur.Visible =3D True
End If
If KeyAscii =3D 13 Then
Grille.Text =3D Valeur.Text
Grille.SetFocus
Valeur.Visible =3D False
KeyAscii =3D 0
End If
End Sub
Pour le bouton "ok", ben, suffit de faire commandX.visibleúlse, et comme il sera invisible, personne ne pourra appuyer dessus, donc il n'aura plus d'effet (syllogisme)...
Pour le reste, je n'utilise pas passer souvent grid, je laisse les soins aux autres de mieux répondre... -- @+, bye, Joe. Pour m'écrire ng75AROBASEnoosPOINTfr remplace AROBASE et POINT par leur vrai signe Il l'a fait car il ne savait pas que c'était impossible, alea jacta est!
"JCM" a écrit dans le message de news: c59e01c3eee3$f12f1f50$ Bonjour
J'essaie d'utiliser un exemple pour l'integrer dans une appli et je n'arrive pas à :
Supprimer le bouton OK et ses effets je voudrais également, après avoir saisi du texte dans txtBox Valeur et tapé sur Return, que la valeur s'affiche dans la cellule du MSFlexGrid Grille, et que la txtBox valeur se positionne dans la cellule suivante Et quand la valeur de la dernière cellule est saisie, je voudrais que le curseur se positionne sur un bouton Enregistre.
Pouvez-vous me dire ce qu'il faut faire, voici mon code :
Option Explicit Private UsingMouse As Boolean '---- Initialisations Private Sub Form_Load() Valeur.Visible = False Dim i ' Nombre de lignes et colonnes Grille.Rows = 5 Grille.Cols = 2 ' Libellés des lignes Grille.Col = 0 For i = 1 To Grille.Rows - 1 Grille.Row = i Grille.Text = i Next ' Libellés des colonnes Grille.FixedAlignment(0) = vbCenter Grille.Row = 0 For i = 1 To Grille.Cols - 1 Grille.FixedAlignment(i) = vbCenter Grille.Col = i Grille.Text = i Next ' Position courante Grille.Row = 1 Grille.Col = 1 KeyPreview = True End Sub '---- Touche de fonction Private Sub Grille_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyEscape Then ' Echappement Valeur.SetFocus ElseIf KeyCode = vbKeyDelete Then ' Suppression Grille.Clip = "" Valeur.Text = Grille.Text End If End Sub '---- Touche du clavier Private Sub Grille_KeyPress(KeyAscii As Integer) ' Passe le caractère au texte Valeur.SetFocus Valeur.Text = Chr$(KeyAscii) Valeur.SelStart = 2 Valeur.SelLength = 0 End Sub '---- Changement de position courante Private Sub Grille_RowColChange() Valeur.Text = Grille.Text End Sub ' Changement de sélection Private Sub Grille_SelChange() End Sub '---- Bouton OK 'Private Sub OK_Click() 'Grille.Text = Valeur.Text 'Grille.SetFocus 'Valeur.Visible = False 'End Sub '---- Colonne de début de la sélection Private Function SelStartCol(grd As MSFlexGrid) If grd.ColSel < grd.Col Then SelStartCol = grd.ColSel Else SelStartCol = grd.Col End Function '---- Colonne de fin de la sélection Private Function SelEndCol(grd As MSFlexGrid) If grd.ColSel > grd.Col Then SelEndCol = grd.ColSel Else SelEndCol = grd.Col End Function '---- Ligne de début de la sélection Private Function SelStartRow(grd As MSFlexGrid) If grd.RowSel < grd.Row Then SelStartRow = grd.RowSel Else SelStartRow = grd.Row End Function '---- Ligne de fin de la sélection Private Function SelEndRow(grd As MSFlexGrid) If grd.RowSel > grd.Row Then SelEndRow = grd.RowSel Else SelEndRow = grd.Row End Function Private Sub Grille_LeaveCell() 'Se produit immédiatement avant qu'une cellule différente ne devienne la cellule active Valeur.Visible = True Valeur.Text = "" End Sub Private Sub Grille_EnterCell() ' Assign cell value to the textbox Valeur.Text = Grille.Text End Sub Private Sub Valeur_GotFocus() Grille.Text = Valeur.Text ChangeCellText End Sub Private Sub Grille_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) UsingMouse = True Grille.Text = Valeur.Text ChangeCellText End Sub '---- On quitte le champ de saisie Private Sub valeur_LostFocus() If UsingMouse = True Then UsingMouse = False Exit Sub End If ChangeCellText End Sub Public Sub ChangeCellText() 'deplace la textbox dans la cellule active Valeur.Move Grille.left + Grille.CellLeft, _ Grille.top + Grille.CellTop, _ Grille.CellWidth, Grille.CellHeight Valeur.SetFocus Valeur.ZOrder 0 End Sub Sub valeur_KeyPress(KeyAscii As Integer) If Valeur.Visible = False Then Valeur.Visible = True End If If KeyAscii = 13 Then Grille.Text = Valeur.Text Grille.SetFocus Valeur.Visible = False KeyAscii = 0 End If End Sub
Merci de votre aide Cordialement JCM
Bonjour,
Pour le bouton "ok", ben, suffit de faire
commandX.visibleúlse,
et comme il sera invisible, personne ne pourra appuyer dessus, donc il
n'aura plus d'effet (syllogisme)...
Pour le reste, je n'utilise pas passer souvent grid, je laisse les soins
aux autres de mieux répondre...
--
@+, bye, Joe.
Pour m'écrire ng75AROBASEnoosPOINTfr
remplace AROBASE et POINT par leur vrai signe
Il l'a fait car il ne savait pas que c'était impossible, alea jacta est!
"JCM" <jean-claude.mansion@wanadoo.fr> a écrit dans le message de news:
c59e01c3eee3$f12f1f50$a101280a@phx.gbl...
Bonjour
J'essaie d'utiliser un exemple pour l'integrer dans une
appli et je n'arrive pas à :
Supprimer le bouton OK et ses effets
je voudrais également, après avoir saisi du texte dans
txtBox Valeur et tapé sur Return, que la valeur s'affiche
dans la cellule du MSFlexGrid Grille, et que la txtBox
valeur se positionne dans la cellule suivante
Et quand la valeur de la dernière cellule est saisie, je
voudrais que le curseur se positionne sur un bouton
Enregistre.
Pouvez-vous me dire ce qu'il faut faire, voici mon code :
Option Explicit
Private UsingMouse As Boolean
'---- Initialisations
Private Sub Form_Load()
Valeur.Visible = False
Dim i
' Nombre de lignes et colonnes
Grille.Rows = 5
Grille.Cols = 2
' Libellés des lignes
Grille.Col = 0
For i = 1 To Grille.Rows - 1
Grille.Row = i
Grille.Text = i
Next
' Libellés des colonnes
Grille.FixedAlignment(0) = vbCenter
Grille.Row = 0
For i = 1 To Grille.Cols - 1
Grille.FixedAlignment(i) = vbCenter
Grille.Col = i
Grille.Text = i
Next
' Position courante
Grille.Row = 1
Grille.Col = 1
KeyPreview = True
End Sub
'---- Touche de fonction
Private Sub Grille_KeyDown(KeyCode As Integer, Shift As
Integer)
If KeyCode = vbKeyEscape Then
' Echappement
Valeur.SetFocus
ElseIf KeyCode = vbKeyDelete Then
' Suppression
Grille.Clip = ""
Valeur.Text = Grille.Text
End If
End Sub
'---- Touche du clavier
Private Sub Grille_KeyPress(KeyAscii As Integer)
' Passe le caractère au texte
Valeur.SetFocus
Valeur.Text = Chr$(KeyAscii)
Valeur.SelStart = 2
Valeur.SelLength = 0
End Sub
'---- Changement de position courante
Private Sub Grille_RowColChange()
Valeur.Text = Grille.Text
End Sub
' Changement de sélection
Private Sub Grille_SelChange()
End Sub
'---- Bouton OK
'Private Sub OK_Click()
'Grille.Text = Valeur.Text
'Grille.SetFocus
'Valeur.Visible = False
'End Sub
'---- Colonne de début de la sélection
Private Function SelStartCol(grd As MSFlexGrid)
If grd.ColSel < grd.Col Then SelStartCol = grd.ColSel
Else SelStartCol = grd.Col
End Function
'---- Colonne de fin de la sélection
Private Function SelEndCol(grd As MSFlexGrid)
If grd.ColSel > grd.Col Then SelEndCol = grd.ColSel
Else SelEndCol = grd.Col
End Function
'---- Ligne de début de la sélection
Private Function SelStartRow(grd As MSFlexGrid)
If grd.RowSel < grd.Row Then SelStartRow = grd.RowSel
Else SelStartRow = grd.Row
End Function
'---- Ligne de fin de la sélection
Private Function SelEndRow(grd As MSFlexGrid)
If grd.RowSel > grd.Row Then SelEndRow = grd.RowSel
Else SelEndRow = grd.Row
End Function
Private Sub Grille_LeaveCell()
'Se produit immédiatement avant qu'une cellule différente
ne devienne la cellule active
Valeur.Visible = True
Valeur.Text = ""
End Sub
Private Sub Grille_EnterCell() ' Assign cell value to the
textbox
Valeur.Text = Grille.Text
End Sub
Private Sub Valeur_GotFocus()
Grille.Text = Valeur.Text
ChangeCellText
End Sub
Private Sub Grille_MouseDown(Button As Integer, Shift As
Integer, X As Single, Y As Single)
UsingMouse = True
Grille.Text = Valeur.Text
ChangeCellText
End Sub
'---- On quitte le champ de saisie
Private Sub valeur_LostFocus()
If UsingMouse = True Then
UsingMouse = False
Exit Sub
End If
ChangeCellText
End Sub
Public Sub ChangeCellText()
'deplace la textbox dans la cellule active
Valeur.Move Grille.left + Grille.CellLeft, _
Grille.top + Grille.CellTop, _
Grille.CellWidth, Grille.CellHeight
Valeur.SetFocus
Valeur.ZOrder 0
End Sub
Sub valeur_KeyPress(KeyAscii As Integer)
If Valeur.Visible = False Then
Valeur.Visible = True
End If
If KeyAscii = 13 Then
Grille.Text = Valeur.Text
Grille.SetFocus
Valeur.Visible = False
KeyAscii = 0
End If
End Sub
Pour le bouton "ok", ben, suffit de faire commandX.visibleúlse, et comme il sera invisible, personne ne pourra appuyer dessus, donc il n'aura plus d'effet (syllogisme)...
Pour le reste, je n'utilise pas passer souvent grid, je laisse les soins aux autres de mieux répondre... -- @+, bye, Joe. Pour m'écrire ng75AROBASEnoosPOINTfr remplace AROBASE et POINT par leur vrai signe Il l'a fait car il ne savait pas que c'était impossible, alea jacta est!
"JCM" a écrit dans le message de news: c59e01c3eee3$f12f1f50$ Bonjour
J'essaie d'utiliser un exemple pour l'integrer dans une appli et je n'arrive pas à :
Supprimer le bouton OK et ses effets je voudrais également, après avoir saisi du texte dans txtBox Valeur et tapé sur Return, que la valeur s'affiche dans la cellule du MSFlexGrid Grille, et que la txtBox valeur se positionne dans la cellule suivante Et quand la valeur de la dernière cellule est saisie, je voudrais que le curseur se positionne sur un bouton Enregistre.
Pouvez-vous me dire ce qu'il faut faire, voici mon code :
Option Explicit Private UsingMouse As Boolean '---- Initialisations Private Sub Form_Load() Valeur.Visible = False Dim i ' Nombre de lignes et colonnes Grille.Rows = 5 Grille.Cols = 2 ' Libellés des lignes Grille.Col = 0 For i = 1 To Grille.Rows - 1 Grille.Row = i Grille.Text = i Next ' Libellés des colonnes Grille.FixedAlignment(0) = vbCenter Grille.Row = 0 For i = 1 To Grille.Cols - 1 Grille.FixedAlignment(i) = vbCenter Grille.Col = i Grille.Text = i Next ' Position courante Grille.Row = 1 Grille.Col = 1 KeyPreview = True End Sub '---- Touche de fonction Private Sub Grille_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyEscape Then ' Echappement Valeur.SetFocus ElseIf KeyCode = vbKeyDelete Then ' Suppression Grille.Clip = "" Valeur.Text = Grille.Text End If End Sub '---- Touche du clavier Private Sub Grille_KeyPress(KeyAscii As Integer) ' Passe le caractère au texte Valeur.SetFocus Valeur.Text = Chr$(KeyAscii) Valeur.SelStart = 2 Valeur.SelLength = 0 End Sub '---- Changement de position courante Private Sub Grille_RowColChange() Valeur.Text = Grille.Text End Sub ' Changement de sélection Private Sub Grille_SelChange() End Sub '---- Bouton OK 'Private Sub OK_Click() 'Grille.Text = Valeur.Text 'Grille.SetFocus 'Valeur.Visible = False 'End Sub '---- Colonne de début de la sélection Private Function SelStartCol(grd As MSFlexGrid) If grd.ColSel < grd.Col Then SelStartCol = grd.ColSel Else SelStartCol = grd.Col End Function '---- Colonne de fin de la sélection Private Function SelEndCol(grd As MSFlexGrid) If grd.ColSel > grd.Col Then SelEndCol = grd.ColSel Else SelEndCol = grd.Col End Function '---- Ligne de début de la sélection Private Function SelStartRow(grd As MSFlexGrid) If grd.RowSel < grd.Row Then SelStartRow = grd.RowSel Else SelStartRow = grd.Row End Function '---- Ligne de fin de la sélection Private Function SelEndRow(grd As MSFlexGrid) If grd.RowSel > grd.Row Then SelEndRow = grd.RowSel Else SelEndRow = grd.Row End Function Private Sub Grille_LeaveCell() 'Se produit immédiatement avant qu'une cellule différente ne devienne la cellule active Valeur.Visible = True Valeur.Text = "" End Sub Private Sub Grille_EnterCell() ' Assign cell value to the textbox Valeur.Text = Grille.Text End Sub Private Sub Valeur_GotFocus() Grille.Text = Valeur.Text ChangeCellText End Sub Private Sub Grille_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) UsingMouse = True Grille.Text = Valeur.Text ChangeCellText End Sub '---- On quitte le champ de saisie Private Sub valeur_LostFocus() If UsingMouse = True Then UsingMouse = False Exit Sub End If ChangeCellText End Sub Public Sub ChangeCellText() 'deplace la textbox dans la cellule active Valeur.Move Grille.left + Grille.CellLeft, _ Grille.top + Grille.CellTop, _ Grille.CellWidth, Grille.CellHeight Valeur.SetFocus Valeur.ZOrder 0 End Sub Sub valeur_KeyPress(KeyAscii As Integer) If Valeur.Visible = False Then Valeur.Visible = True End If If KeyAscii = 13 Then Grille.Text = Valeur.Text Grille.SetFocus Valeur.Visible = False KeyAscii = 0 End If End Sub
Merci de votre aide Cordialement JCM
François Picalausa
Bonjour/soir,
Je suppose que ton boutton OK est Default? Une solution triviale serait de passer Default à False et le comandbutton ne serait plus activé par Enter. Sinon, tu peux utiliser le keydown du commandbutton et utiliser une variable privée en fonction du fait que le textbox ait perdu le focus (LostFocus) et de sa position actuelle...
Je ne sais pas si tu vois exactement ce que je veux dire.. mais je repasserai peut-être plus tard avec un bout de code (beaucoup de projets en cours pour le moment ;-)... plus beaucoup de temps)
"JCM" a écrit dans le message de news:c59e01c3eee3$f12f1f50$
Supprimer le bouton OK et ses effets je voudrais également, après avoir saisi du texte dans txtBox Valeur et tapé sur Return, que la valeur s'affiche dans la cellule du MSFlexGrid Grille, et que la txtBox valeur se positionne dans la cellule suivante Et quand la valeur de la dernière cellule est saisie, je voudrais que le curseur se positionne sur un bouton Enregistre.
Pouvez-vous me dire ce qu'il faut faire, voici mon code :
Bonjour/soir,
Je suppose que ton boutton OK est Default?
Une solution triviale serait de passer Default à False et le comandbutton ne
serait plus activé par Enter.
Sinon, tu peux utiliser le keydown du commandbutton et utiliser une variable
privée en fonction du fait que le textbox ait perdu le focus (LostFocus) et
de sa position actuelle...
Je ne sais pas si tu vois exactement ce que je veux dire.. mais je
repasserai peut-être plus tard avec un bout de code
(beaucoup de projets en cours pour le moment ;-)... plus beaucoup de temps)
"JCM" <jean-claude.mansion@wanadoo.fr> a écrit dans le message de
news:c59e01c3eee3$f12f1f50$a101280a@phx.gbl
Supprimer le bouton OK et ses effets
je voudrais également, après avoir saisi du texte dans
txtBox Valeur et tapé sur Return, que la valeur s'affiche
dans la cellule du MSFlexGrid Grille, et que la txtBox
valeur se positionne dans la cellule suivante
Et quand la valeur de la dernière cellule est saisie, je
voudrais que le curseur se positionne sur un bouton
Enregistre.
Pouvez-vous me dire ce qu'il faut faire, voici mon code :
Je suppose que ton boutton OK est Default? Une solution triviale serait de passer Default à False et le comandbutton ne serait plus activé par Enter. Sinon, tu peux utiliser le keydown du commandbutton et utiliser une variable privée en fonction du fait que le textbox ait perdu le focus (LostFocus) et de sa position actuelle...
Je ne sais pas si tu vois exactement ce que je veux dire.. mais je repasserai peut-être plus tard avec un bout de code (beaucoup de projets en cours pour le moment ;-)... plus beaucoup de temps)
"JCM" a écrit dans le message de news:c59e01c3eee3$f12f1f50$
Supprimer le bouton OK et ses effets je voudrais également, après avoir saisi du texte dans txtBox Valeur et tapé sur Return, que la valeur s'affiche dans la cellule du MSFlexGrid Grille, et que la txtBox valeur se positionne dans la cellule suivante Et quand la valeur de la dernière cellule est saisie, je voudrais que le curseur se positionne sur un bouton Enregistre.
Pouvez-vous me dire ce qu'il faut faire, voici mon code :
JCM
Bonjour François
et merci de me répondre car cela fait plusieurs jours que je galère sans trouver de réponse.
Non je ne vois pas tres bien, en fait je veux supprimer ce bouton OK et le remplacer par la touche RETURN
Si je mets OK en visibleúlse cela ne fonctionne plus
Cordialement JCM
-----Message d'origine----- Bonjour/soir,
Je suppose que ton boutton OK est Default? Une solution triviale serait de passer Default à False et
le comandbutton ne
serait plus activé par Enter. Sinon, tu peux utiliser le keydown du commandbutton et
utiliser une variable
privée en fonction du fait que le textbox ait perdu le
focus (LostFocus) et
de sa position actuelle...
Je ne sais pas si tu vois exactement ce que je veux
dire.. mais je
repasserai peut-être plus tard avec un bout de code (beaucoup de projets en cours pour le moment ;-)... plus
Supprimer le bouton OK et ses effets je voudrais également, après avoir saisi du texte dans txtBox Valeur et tapé sur Return, que la valeur
s'affiche
dans la cellule du MSFlexGrid Grille, et que la txtBox valeur se positionne dans la cellule suivante Et quand la valeur de la dernière cellule est saisie, je voudrais que le curseur se positionne sur un bouton Enregistre.
Pouvez-vous me dire ce qu'il faut faire, voici mon
code :
.
Bonjour François
et merci de me répondre car cela fait plusieurs jours que
je galère sans trouver de réponse.
Non je ne vois pas tres bien, en fait je veux supprimer ce
bouton OK et le remplacer par la touche RETURN
Si je mets OK en visible=false cela ne fonctionne plus
Cordialement
JCM
-----Message d'origine-----
Bonjour/soir,
Je suppose que ton boutton OK est Default?
Une solution triviale serait de passer Default à False et
le comandbutton ne
serait plus activé par Enter.
Sinon, tu peux utiliser le keydown du commandbutton et
utiliser une variable
privée en fonction du fait que le textbox ait perdu le
focus (LostFocus) et
de sa position actuelle...
Je ne sais pas si tu vois exactement ce que je veux
dire.. mais je
repasserai peut-être plus tard avec un bout de code
(beaucoup de projets en cours pour le moment ;-)... plus
"JCM" <jean-claude.mansion@wanadoo.fr> a écrit dans le
message de
news:c59e01c3eee3$f12f1f50$a101280a@phx.gbl
Supprimer le bouton OK et ses effets
je voudrais également, après avoir saisi du texte dans
txtBox Valeur et tapé sur Return, que la valeur
s'affiche
dans la cellule du MSFlexGrid Grille, et que la txtBox
valeur se positionne dans la cellule suivante
Et quand la valeur de la dernière cellule est saisie, je
voudrais que le curseur se positionne sur un bouton
Enregistre.
Pouvez-vous me dire ce qu'il faut faire, voici mon
Supprimer le bouton OK et ses effets je voudrais également, après avoir saisi du texte dans txtBox Valeur et tapé sur Return, que la valeur
s'affiche
dans la cellule du MSFlexGrid Grille, et que la txtBox valeur se positionne dans la cellule suivante Et quand la valeur de la dernière cellule est saisie, je voudrais que le curseur se positionne sur un bouton Enregistre.
Pouvez-vous me dire ce qu'il faut faire, voici mon
code :
.
Eric Blin
Bonjour,
Non je ne vois pas tres bien, en fait je veux supprimer ce bouton OK et le remplacer par la touche RETURN
Tu interceptes alors l'appuie sur la touche ENTREE sur ta form dans l'event Keypress/Keydown/KeyUp suivant ce que tu veux faire.
Si je mets OK en visibleúlse cela ne fonctionne plus
Heu u comme cela c'est normal, mais vu comment tu as posé le problème nous pouvions envisagé que tu avais un bouton OK pour valider la saisie hors tu sembles en faite vouloir simuler le bouton OK
Bon un peu plus de précision et je pense que ta question aura une soluce...
@+
Eric
Bonjour,
Non je ne vois pas tres bien, en fait je veux supprimer ce
bouton OK et le remplacer par la touche RETURN
Tu interceptes alors l'appuie sur la touche ENTREE sur ta form dans l'event
Keypress/Keydown/KeyUp suivant ce que tu veux faire.
Si je mets OK en visibleúlse cela ne fonctionne plus
Heu u comme cela c'est normal, mais vu comment tu as posé le problème nous
pouvions envisagé que tu avais un bouton OK pour valider la saisie hors tu
sembles en faite vouloir simuler le bouton OK
Bon un peu plus de précision et je pense que ta question aura une soluce...
Non je ne vois pas tres bien, en fait je veux supprimer ce bouton OK et le remplacer par la touche RETURN
Tu interceptes alors l'appuie sur la touche ENTREE sur ta form dans l'event Keypress/Keydown/KeyUp suivant ce que tu veux faire.
Si je mets OK en visibleúlse cela ne fonctionne plus
Heu u comme cela c'est normal, mais vu comment tu as posé le problème nous pouvions envisagé que tu avais un bouton OK pour valider la saisie hors tu sembles en faite vouloir simuler le bouton OK
Bon un peu plus de précision et je pense que ta question aura une soluce...
@+
Eric
Zoury
Salut!
>Non je ne vois pas tres bien, en fait je veux supprimer ce >bouton OK et le remplacer par la touche RETURN
Tu interceptes alors l'appuie sur la touche ENTREE sur ta form dans
l'event
Keypress/Keydown/KeyUp suivant ce que tu veux faire.
Yep. Assure toi toutefois que la propriété KeyPreview du formulaire concernée soit mise à True.
Merci de poster les réponses au groupe afin d'en faire profiter à tous
JCM
Bonjour Eric
je veux supprimer le bouton OK, cette procédure est récupérée dans un exemple c'est pour cela qu'il y a un bouton OK.
Dans mon appli je veux placer la txtBox sur la première cellule de mon MSGRID, saisir une valeur dans la TXTBOX, tapez sur RETURN pour placer la saisie dans la premiere cellulle et descendre la TXTBX dans la seconde cellule, ect jusqu'à la dernière
Ensuite (passé la dernière cellule) je veux ajouter dans mon appli un bouton "enregistre" pour rentrer les données de toutes les cellules dans ma base de données
est-ce plus clair ? Cordialement JCM
-----Message d'origine----- Bonjour,
Non je ne vois pas tres bien, en fait je veux supprimer
ce
bouton OK et le remplacer par la touche RETURN
Tu interceptes alors l'appuie sur la touche ENTREE sur ta
form dans l'event
Keypress/Keydown/KeyUp suivant ce que tu veux faire.
Si je mets OK en visibleúlse cela ne fonctionne plus
Heu u comme cela c'est normal, mais vu comment tu as posé
le problème nous
pouvions envisagé que tu avais un bouton OK pour valider
la saisie hors tu
sembles en faite vouloir simuler le bouton OK
Bon un peu plus de précision et je pense que ta question
aura une soluce...
@+
Eric
.
Bonjour Eric
je veux supprimer le bouton OK, cette procédure est
récupérée dans un exemple c'est pour cela qu'il y a un
bouton OK.
Dans mon appli je veux placer la txtBox sur la première
cellule de mon MSGRID, saisir une valeur dans la TXTBOX,
tapez sur RETURN pour placer la saisie dans la premiere
cellulle et descendre la TXTBX dans la seconde cellule,
ect jusqu'à la dernière
Ensuite (passé la dernière cellule) je veux ajouter dans
mon appli un bouton "enregistre" pour rentrer les données
de toutes les cellules dans ma base de données
est-ce plus clair ?
Cordialement
JCM
-----Message d'origine-----
Bonjour,
Non je ne vois pas tres bien, en fait je veux supprimer
ce
bouton OK et le remplacer par la touche RETURN
Tu interceptes alors l'appuie sur la touche ENTREE sur ta
form dans l'event
Keypress/Keydown/KeyUp suivant ce que tu veux faire.
Si je mets OK en visible=false cela ne fonctionne plus
Heu u comme cela c'est normal, mais vu comment tu as posé
le problème nous
pouvions envisagé que tu avais un bouton OK pour valider
la saisie hors tu
sembles en faite vouloir simuler le bouton OK
Bon un peu plus de précision et je pense que ta question
je veux supprimer le bouton OK, cette procédure est récupérée dans un exemple c'est pour cela qu'il y a un bouton OK.
Dans mon appli je veux placer la txtBox sur la première cellule de mon MSGRID, saisir une valeur dans la TXTBOX, tapez sur RETURN pour placer la saisie dans la premiere cellulle et descendre la TXTBX dans la seconde cellule, ect jusqu'à la dernière
Ensuite (passé la dernière cellule) je veux ajouter dans mon appli un bouton "enregistre" pour rentrer les données de toutes les cellules dans ma base de données
est-ce plus clair ? Cordialement JCM
-----Message d'origine----- Bonjour,
Non je ne vois pas tres bien, en fait je veux supprimer
ce
bouton OK et le remplacer par la touche RETURN
Tu interceptes alors l'appuie sur la touche ENTREE sur ta
form dans l'event
Keypress/Keydown/KeyUp suivant ce que tu veux faire.
Si je mets OK en visibleúlse cela ne fonctionne plus
Heu u comme cela c'est normal, mais vu comment tu as posé
le problème nous
pouvions envisagé que tu avais un bouton OK pour valider
la saisie hors tu
sembles en faite vouloir simuler le bouton OK
Bon un peu plus de précision et je pense que ta question
aura une soluce...
@+
Eric
.
Zoury
Salut Jean-Claude! :O)
saisir une valeur dans la TXTBOX, tapez sur RETURN pour
mmm.. juste avec ce bout de phrase, on pourrait déduire que c'est dans l'événement KeyDown (ou KeyPress) du TextBox qu'il faudra exécuter le code se trouvant dans le bouton OK.
je présume, qu'il faudrait donc rajouter cet événement dans ton code '*** Private Sub Valeur_KeyPress(KeyAscii As Integer) If (KeyAscii = vbKeyReturn) Then Grille.Text = Valeur.Text Grille.SetFocus Valeur.Visible = False End If End Sub '***
Merci de poster les réponses au groupe afin d'en faire profiter à tous
Salut Jean-Claude! :O)
saisir une valeur dans la TXTBOX,
tapez sur RETURN pour
mmm.. juste avec ce bout de phrase, on pourrait déduire que c'est dans
l'événement KeyDown (ou KeyPress) du TextBox qu'il faudra exécuter le code
se trouvant dans le bouton OK.
je présume, qu'il faudrait donc rajouter cet événement dans ton code
'***
Private Sub Valeur_KeyPress(KeyAscii As Integer)
If (KeyAscii = vbKeyReturn) Then
Grille.Text = Valeur.Text
Grille.SetFocus
Valeur.Visible = False
End If
End Sub
'***
saisir une valeur dans la TXTBOX, tapez sur RETURN pour
mmm.. juste avec ce bout de phrase, on pourrait déduire que c'est dans l'événement KeyDown (ou KeyPress) du TextBox qu'il faudra exécuter le code se trouvant dans le bouton OK.
je présume, qu'il faudrait donc rajouter cet événement dans ton code '*** Private Sub Valeur_KeyPress(KeyAscii As Integer) If (KeyAscii = vbKeyReturn) Then Grille.Text = Valeur.Text Grille.SetFocus Valeur.Visible = False End If End Sub '***
Merci de poster les réponses au groupe afin d'en faire profiter à tous
JCM
Bonjour Zoury
cela ne marche toujours pas,
quand je lance l'appli le MSGRID s'affiche je click sur la premiere cellule la textBox se positionne sur la premiere cellule je saisi du texte RETURN la 1ere cellule n'a pas pris la valeur de la textbox la textbox ne se positionne pas sur la 2eme cellule je click sur cette 2eme cellule et BEUG sur
Public Sub ChangeCellText() 'deplace la textbox dans la cellule active Valeur.Move Grille.left + Grille.CellLeft, _ Grille.top + Grille.CellTop, _ Grille.CellWidth, Grille.CellHeight Valeur.SetFocus Valeur.ZOrder 0 End Sub
Sur la ligne Valeur.Setfocus avec ce message : argument ou appel de procédure incorrect
saisir une valeur dans la TXTBOX, tapez sur RETURN pour
mmm.. juste avec ce bout de phrase, on pourrait déduire
que c'est dans
l'événement KeyDown (ou KeyPress) du TextBox qu'il faudra
exécuter le code
se trouvant dans le bouton OK.
je présume, qu'il faudrait donc rajouter cet événement
dans ton code
'*** Private Sub Valeur_KeyPress(KeyAscii As Integer) If (KeyAscii = vbKeyReturn) Then Grille.Text = Valeur.Text Grille.SetFocus Valeur.Visible = False End If End Sub '***
Merci de poster les réponses au groupe afin d'en faire
profiter à tous
.
Bonjour Zoury
cela ne marche toujours pas,
quand je lance l'appli le MSGRID s'affiche
je click sur la premiere cellule
la textBox se positionne sur la premiere cellule
je saisi du texte
RETURN
la 1ere cellule n'a pas pris la valeur de la textbox
la textbox ne se positionne pas sur la 2eme cellule
je click sur cette 2eme cellule
et BEUG sur
Public Sub ChangeCellText()
'deplace la textbox dans la cellule active
Valeur.Move Grille.left + Grille.CellLeft, _
Grille.top + Grille.CellTop, _
Grille.CellWidth, Grille.CellHeight
Valeur.SetFocus
Valeur.ZOrder 0
End Sub
Sur la ligne Valeur.Setfocus avec ce message : argument ou
appel de procédure incorrect
saisir une valeur dans la TXTBOX,
tapez sur RETURN pour
mmm.. juste avec ce bout de phrase, on pourrait déduire
que c'est dans
l'événement KeyDown (ou KeyPress) du TextBox qu'il faudra
exécuter le code
se trouvant dans le bouton OK.
je présume, qu'il faudrait donc rajouter cet événement
dans ton code
'***
Private Sub Valeur_KeyPress(KeyAscii As Integer)
If (KeyAscii = vbKeyReturn) Then
Grille.Text = Valeur.Text
Grille.SetFocus
Valeur.Visible = False
End If
End Sub
'***
quand je lance l'appli le MSGRID s'affiche je click sur la premiere cellule la textBox se positionne sur la premiere cellule je saisi du texte RETURN la 1ere cellule n'a pas pris la valeur de la textbox la textbox ne se positionne pas sur la 2eme cellule je click sur cette 2eme cellule et BEUG sur
Public Sub ChangeCellText() 'deplace la textbox dans la cellule active Valeur.Move Grille.left + Grille.CellLeft, _ Grille.top + Grille.CellTop, _ Grille.CellWidth, Grille.CellHeight Valeur.SetFocus Valeur.ZOrder 0 End Sub
Sur la ligne Valeur.Setfocus avec ce message : argument ou appel de procédure incorrect
saisir une valeur dans la TXTBOX, tapez sur RETURN pour
mmm.. juste avec ce bout de phrase, on pourrait déduire
que c'est dans
l'événement KeyDown (ou KeyPress) du TextBox qu'il faudra
exécuter le code
se trouvant dans le bouton OK.
je présume, qu'il faudrait donc rajouter cet événement
dans ton code
'*** Private Sub Valeur_KeyPress(KeyAscii As Integer) If (KeyAscii = vbKeyReturn) Then Grille.Text = Valeur.Text Grille.SetFocus Valeur.Visible = False End If End Sub '***