Dans une Form, sur un TextBox1, j'utilise l'événement KeyDown pour détecter
lorsque l'utilisateur utilise les flèches du clavier. Je veux donc que
lorsque l'utilisateur appuis sur la flèche du haut (keycode = 38) que la
cellule active remonte d'un cran et que lorsque l'utilisateur appuis sur la
flèche du bas (keycode = 40) que la cellule active descende d'un cran.
Mais... en appuyant sur la flèche du haut le focus de la Form passe sur
l'objet situé au dessus... pour revenir à mon TextBox1 j'utilise
TextBox1.SetFocus or celà ne donne rien... le focus ne revient pas à la fin
du texte de mon TextBox1 mais reste sur l'objet du haut...
Auriez vous une astuce pour solutionner mon problème ?
Dans une Form, sur un TextBox1, j'utilise l'événement KeyDown pour détecter lorsque l'utilisateur utilise les flèches du clavier. Je veux donc que lorsque l'utilisateur appuis sur la flèche du haut (keycode = 38) que la cellule active remonte d'un cran et que lorsque l'utilisateur appuis sur la flèche du bas (keycode = 40) que la cellule active descende d'un cran. Mais... en appuyant sur la flèche du haut le focus de la Form passe sur l'objet situé au dessus... pour revenir à mon TextBox1 j'utilise TextBox1.SetFocus or celà ne donne rien... le focus ne revient pas à la fin du texte de mon TextBox1 mais reste sur l'objet du haut...
Auriez vous une astuce pour solutionner mon problème ?
Merci d'avance pour votre aide
bonjour HD,
si tu met la propriété du userform : ShowModal = False
tu peut sélectionner des cellules ou autre feuille du classeur
Dans une Form, sur un TextBox1, j'utilise l'événement KeyDown pour détecter
lorsque l'utilisateur utilise les flèches du clavier. Je veux donc que
lorsque l'utilisateur appuis sur la flèche du haut (keycode = 38) que la
cellule active remonte d'un cran et que lorsque l'utilisateur appuis sur la
flèche du bas (keycode = 40) que la cellule active descende d'un cran.
Mais... en appuyant sur la flèche du haut le focus de la Form passe sur
l'objet situé au dessus... pour revenir à mon TextBox1 j'utilise
TextBox1.SetFocus or celà ne donne rien... le focus ne revient pas à la fin
du texte de mon TextBox1 mais reste sur l'objet du haut...
Auriez vous une astuce pour solutionner mon problème ?
Dans une Form, sur un TextBox1, j'utilise l'événement KeyDown pour détecter lorsque l'utilisateur utilise les flèches du clavier. Je veux donc que lorsque l'utilisateur appuis sur la flèche du haut (keycode = 38) que la cellule active remonte d'un cran et que lorsque l'utilisateur appuis sur la flèche du bas (keycode = 40) que la cellule active descende d'un cran. Mais... en appuyant sur la flèche du haut le focus de la Form passe sur l'objet situé au dessus... pour revenir à mon TextBox1 j'utilise TextBox1.SetFocus or celà ne donne rien... le focus ne revient pas à la fin du texte de mon TextBox1 mais reste sur l'objet du haut...
Auriez vous une astuce pour solutionner mon problème ?
Merci d'avance pour votre aide
MichD
Bonjour,
Comme ceci :
'------------------------------------------------- Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, _ ByVal Shift As Integer)
With ActiveSheet.Name Select Case KeyCode Case 38 'Vers le bas If ActiveCell.Row > 1 Then ActiveCell.Offset(-1).Select KeyCode = 0 End If Case 40 'vers le haut If ActiveCell.Row < Cells.Rows.Count Then ActiveCell.Offset(1).Select KeyCode = 0 End If End Select End With End Sub '-------------------------------------------------
'-------------------------------------------------
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, _
ByVal Shift As Integer)
With ActiveSheet.Name
Select Case KeyCode
Case 38 'Vers le bas
If ActiveCell.Row > 1 Then
ActiveCell.Offset(-1).Select
KeyCode = 0
End If
Case 40 'vers le haut
If ActiveCell.Row < Cells.Rows.Count Then
ActiveCell.Offset(1).Select
KeyCode = 0
End If
End Select
End With
End Sub
'-------------------------------------------------
'------------------------------------------------- Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, _ ByVal Shift As Integer)
With ActiveSheet.Name Select Case KeyCode Case 38 'Vers le bas If ActiveCell.Row > 1 Then ActiveCell.Offset(-1).Select KeyCode = 0 End If Case 40 'vers le haut If ActiveCell.Row < Cells.Rows.Count Then ActiveCell.Offset(1).Select KeyCode = 0 End If End Select End With End Sub '-------------------------------------------------
Dans une Form, sur un TextBox1, j'utilise l'événement KeyDown pour détecter lorsque l'utilisateur utilise les flèches du clavier. Je veux donc qu e lorsque l'utilisateur appuis sur la flèche du haut (keycode = 38) q ue la cellule active remonte d'un cran et que lorsque l'utilisateur appuis su r la flèche du bas (keycode = 40) que la cellule active descende d'un cr an. Mais... en appuyant sur la flèche du haut le focus de la Form passe s ur l'objet situé au dessus... pour revenir à mon TextBox1 j'utilise TextBox1.SetFocus or celà ne donne rien... le focus ne revient pas à la fin du texte de mon TextBox1 mais reste sur l'objet du haut...
Auriez vous une astuce pour solutionner mon problème ?
Merci d'avance pour votre aide
Bonjour,
Quand j'ai vu Form, sous Excel, j'ai tout de suite pensé à UserForm, et puis un peu plus loin j'ai vu qu'il y avait des cellules. Il s'agit de contrôles insérés sur une feuille de calcul, donc, j'imagine ?
Si j'ai bien lu, tu obtiens le fonctionnement décrit par le code de MichDenis ? Et à la place tu voudrais obtenir le fonctionnement command é par l'allumage du témoin scroll, c'est-à-dire que l'élément sél ectionné reste sélectionné, mais que sa position à l'écran change ?
Il me semble qu'il faut regarder du côté de ActiveWindow.SmallScroll d'une part, et de ActiveWindow.ScrollRow et ActiveWindow.ScrollColumn d'autre part.
J'avais en tête un UpperLeftCell, mais apparemment, j'ai inventé.
HD a écrit, le 08/04/2011 11:58 :
Bonjour,
Dans une Form,
sur un TextBox1, j'utilise l'événement KeyDown pour détecter
lorsque l'utilisateur utilise les flèches du clavier. Je veux donc qu e
lorsque l'utilisateur appuis sur la flèche du haut (keycode = 38) q ue la
cellule active remonte d'un cran et que lorsque l'utilisateur appuis su r la
flèche du bas (keycode = 40) que la cellule active descende d'un cr an.
Mais... en appuyant sur la flèche du haut le focus de la Form passe s ur
l'objet situé au dessus... pour revenir à mon TextBox1 j'utilise
TextBox1.SetFocus or celà ne donne rien... le focus ne revient pas à la fin
du texte de mon TextBox1 mais reste sur l'objet du haut...
Auriez vous une astuce pour solutionner mon problème ?
Merci d'avance pour votre aide
Bonjour,
Quand j'ai vu Form, sous Excel, j'ai tout de suite pensé à UserForm, et
puis un peu plus loin j'ai vu qu'il y avait des cellules. Il s'agit de
contrôles insérés sur une feuille de calcul, donc, j'imagine ?
Si j'ai bien lu, tu obtiens le fonctionnement décrit par le code de
MichDenis ? Et à la place tu voudrais obtenir le fonctionnement command é
par l'allumage du témoin scroll, c'est-à-dire que l'élément sél ectionné
reste sélectionné, mais que sa position à l'écran change ?
Il me semble qu'il faut regarder du côté de ActiveWindow.SmallScroll
d'une part, et de ActiveWindow.ScrollRow et ActiveWindow.ScrollColumn
d'autre part.
J'avais en tête un UpperLeftCell, mais apparemment, j'ai inventé.
Dans une Form, sur un TextBox1, j'utilise l'événement KeyDown pour détecter lorsque l'utilisateur utilise les flèches du clavier. Je veux donc qu e lorsque l'utilisateur appuis sur la flèche du haut (keycode = 38) q ue la cellule active remonte d'un cran et que lorsque l'utilisateur appuis su r la flèche du bas (keycode = 40) que la cellule active descende d'un cr an. Mais... en appuyant sur la flèche du haut le focus de la Form passe s ur l'objet situé au dessus... pour revenir à mon TextBox1 j'utilise TextBox1.SetFocus or celà ne donne rien... le focus ne revient pas à la fin du texte de mon TextBox1 mais reste sur l'objet du haut...
Auriez vous une astuce pour solutionner mon problème ?
Merci d'avance pour votre aide
Bonjour,
Quand j'ai vu Form, sous Excel, j'ai tout de suite pensé à UserForm, et puis un peu plus loin j'ai vu qu'il y avait des cellules. Il s'agit de contrôles insérés sur une feuille de calcul, donc, j'imagine ?
Si j'ai bien lu, tu obtiens le fonctionnement décrit par le code de MichDenis ? Et à la place tu voudrais obtenir le fonctionnement command é par l'allumage du témoin scroll, c'est-à-dire que l'élément sél ectionné reste sélectionné, mais que sa position à l'écran change ?
Il me semble qu'il faut regarder du côté de ActiveWindow.SmallScroll d'une part, et de ActiveWindow.ScrollRow et ActiveWindow.ScrollColumn d'autre part.
J'avais en tête un UpperLeftCell, mais apparemment, j'ai inventé.
MichD
Bonjour,
| Quand j'ai vu Form, sous Excel, j'ai tout de suite pensé à UserForm, et | puis un peu plus loin j'ai vu qu'il y avait des cellules. Il s'agit de | contrôles insérés sur une feuille de calcul, donc, j'imagine ?
Seule la barre d'outils "Contrôle" à un contrôle "TextBox", la barre d'outils "Formulaire" n'en disposant d'aucuns.
Le contrôle Textbox que l'on insère dans une feuille de calcul a les mêmes événements que celui utilisé dans un formulaire(userform).
La procédure devrait fonctionner qu'elle soit placée dans un formulaire ou pour un contrôle "TextBox" d'une feuille. Il s'agit de renommer le nom du contrôle dans la déclaration de la procédure le cas échéant.
| J'avais en tête un UpperLeftCell, mais apparemment, j'ai inventé.
Je crois que tu fais référence à ceci :
J'avais en tête un UpperLeftCell, mais apparemment, j'ai inventé.
'Me si le code est écrit dans le module feuille 'bien que Me ne soit pas obligatoire, il permet d'avoir la liste déroulante 'permettant de voir les objets, propriétés et méthodes disponibles. x = Me.Shapes("TextBox1").TopLeftCell.Address
N'importe où dans le code, il y a cette syntaxe qui est disponible x = Feuil1.TextBox1.TopLeftCell.Address OU x = Worksheets("Feuil1").textbox1.TopLeftCell.Address OU x = Worksheets("Feuil1").Shapes("textbox1").TopLeftCell.Address
Le pendant de la propriété "TopLeftCell" : BottomRightCell
MichD -------------------------------------------- "Gloops" a écrit dans le message de groupe de discussion : inqsta$pr8$
HD a écrit, le 08/04/2011 11:58 :
Bonjour,
Dans une Form, sur un TextBox1, j'utilise l'événement KeyDown pour détecter lorsque l'utilisateur utilise les flèches du clavier. Je veux donc que lorsque l'utilisateur appuis sur la flèche du haut (keycode = 38) que la cellule active remonte d'un cran et que lorsque l'utilisateur appuis sur la flèche du bas (keycode = 40) que la cellule active descende d'un cran. Mais... en appuyant sur la flèche du haut le focus de la Form passe sur l'objet situé au dessus... pour revenir à mon TextBox1 j'utilise TextBox1.SetFocus or celà ne donne rien... le focus ne revient pas à la fin du texte de mon TextBox1 mais reste sur l'objet du haut...
Auriez vous une astuce pour solutionner mon problème ?
Merci d'avance pour votre aide
Bonjour,
Quand j'ai vu Form, sous Excel, j'ai tout de suite pensé à UserForm, et puis un peu plus loin j'ai vu qu'il y avait des cellules. Il s'agit de contrôles insérés sur une feuille de calcul, donc, j'imagine ?
Si j'ai bien lu, tu obtiens le fonctionnement décrit par le code de MichDenis ? Et à la place tu voudrais obtenir le fonctionnement commandé par l'allumage du témoin scroll, c'est-à-dire que l'élément sélectionné reste sélectionné, mais que sa position à l'écran change ?
Il me semble qu'il faut regarder du côté de ActiveWindow.SmallScroll d'une part, et de ActiveWindow.ScrollRow et ActiveWindow.ScrollColumn d'autre part.
J'avais en tête un UpperLeftCell, mais apparemment, j'ai inventé.
Bonjour,
| Quand j'ai vu Form, sous Excel, j'ai tout de suite pensé à UserForm, et
| puis un peu plus loin j'ai vu qu'il y avait des cellules. Il s'agit de
| contrôles insérés sur une feuille de calcul, donc, j'imagine ?
Seule la barre d'outils "Contrôle" à un contrôle "TextBox",
la barre d'outils "Formulaire" n'en disposant d'aucuns.
Le contrôle Textbox que l'on insère dans une feuille de calcul a les
mêmes événements que celui utilisé dans un formulaire(userform).
La procédure devrait fonctionner qu'elle soit placée dans un formulaire
ou pour un contrôle "TextBox" d'une feuille. Il s'agit de renommer le
nom du contrôle dans la déclaration de la procédure le cas échéant.
| J'avais en tête un UpperLeftCell, mais apparemment, j'ai inventé.
Je crois que tu fais référence à ceci :
J'avais en tête un UpperLeftCell, mais apparemment, j'ai inventé.
'Me si le code est écrit dans le module feuille
'bien que Me ne soit pas obligatoire, il permet d'avoir la liste déroulante
'permettant de voir les objets, propriétés et méthodes disponibles.
x = Me.Shapes("TextBox1").TopLeftCell.Address
N'importe où dans le code, il y a cette syntaxe qui est disponible
x = Feuil1.TextBox1.TopLeftCell.Address
OU
x = Worksheets("Feuil1").textbox1.TopLeftCell.Address
OU
x = Worksheets("Feuil1").Shapes("textbox1").TopLeftCell.Address
Le pendant de la propriété "TopLeftCell" : BottomRightCell
MichD
--------------------------------------------
"Gloops" a écrit dans le message de groupe de discussion : inqsta$pr8$1@speranza.aioe.org...
HD a écrit, le 08/04/2011 11:58 :
Bonjour,
Dans une Form,
sur un TextBox1, j'utilise l'événement KeyDown pour détecter
lorsque l'utilisateur utilise les flèches du clavier. Je veux donc que
lorsque l'utilisateur appuis sur la flèche du haut (keycode = 38) que la
cellule active remonte d'un cran et que lorsque l'utilisateur appuis sur la
flèche du bas (keycode = 40) que la cellule active descende d'un cran.
Mais... en appuyant sur la flèche du haut le focus de la Form passe sur
l'objet situé au dessus... pour revenir à mon TextBox1 j'utilise
TextBox1.SetFocus or celà ne donne rien... le focus ne revient pas à la fin
du texte de mon TextBox1 mais reste sur l'objet du haut...
Auriez vous une astuce pour solutionner mon problème ?
Merci d'avance pour votre aide
Bonjour,
Quand j'ai vu Form, sous Excel, j'ai tout de suite pensé à UserForm, et
puis un peu plus loin j'ai vu qu'il y avait des cellules. Il s'agit de
contrôles insérés sur une feuille de calcul, donc, j'imagine ?
Si j'ai bien lu, tu obtiens le fonctionnement décrit par le code de
MichDenis ? Et à la place tu voudrais obtenir le fonctionnement commandé
par l'allumage du témoin scroll, c'est-à-dire que l'élément sélectionné
reste sélectionné, mais que sa position à l'écran change ?
Il me semble qu'il faut regarder du côté de ActiveWindow.SmallScroll
d'une part, et de ActiveWindow.ScrollRow et ActiveWindow.ScrollColumn
d'autre part.
J'avais en tête un UpperLeftCell, mais apparemment, j'ai inventé.
| Quand j'ai vu Form, sous Excel, j'ai tout de suite pensé à UserForm, et | puis un peu plus loin j'ai vu qu'il y avait des cellules. Il s'agit de | contrôles insérés sur une feuille de calcul, donc, j'imagine ?
Seule la barre d'outils "Contrôle" à un contrôle "TextBox", la barre d'outils "Formulaire" n'en disposant d'aucuns.
Le contrôle Textbox que l'on insère dans une feuille de calcul a les mêmes événements que celui utilisé dans un formulaire(userform).
La procédure devrait fonctionner qu'elle soit placée dans un formulaire ou pour un contrôle "TextBox" d'une feuille. Il s'agit de renommer le nom du contrôle dans la déclaration de la procédure le cas échéant.
| J'avais en tête un UpperLeftCell, mais apparemment, j'ai inventé.
Je crois que tu fais référence à ceci :
J'avais en tête un UpperLeftCell, mais apparemment, j'ai inventé.
'Me si le code est écrit dans le module feuille 'bien que Me ne soit pas obligatoire, il permet d'avoir la liste déroulante 'permettant de voir les objets, propriétés et méthodes disponibles. x = Me.Shapes("TextBox1").TopLeftCell.Address
N'importe où dans le code, il y a cette syntaxe qui est disponible x = Feuil1.TextBox1.TopLeftCell.Address OU x = Worksheets("Feuil1").textbox1.TopLeftCell.Address OU x = Worksheets("Feuil1").Shapes("textbox1").TopLeftCell.Address
Le pendant de la propriété "TopLeftCell" : BottomRightCell
MichD -------------------------------------------- "Gloops" a écrit dans le message de groupe de discussion : inqsta$pr8$
HD a écrit, le 08/04/2011 11:58 :
Bonjour,
Dans une Form, sur un TextBox1, j'utilise l'événement KeyDown pour détecter lorsque l'utilisateur utilise les flèches du clavier. Je veux donc que lorsque l'utilisateur appuis sur la flèche du haut (keycode = 38) que la cellule active remonte d'un cran et que lorsque l'utilisateur appuis sur la flèche du bas (keycode = 40) que la cellule active descende d'un cran. Mais... en appuyant sur la flèche du haut le focus de la Form passe sur l'objet situé au dessus... pour revenir à mon TextBox1 j'utilise TextBox1.SetFocus or celà ne donne rien... le focus ne revient pas à la fin du texte de mon TextBox1 mais reste sur l'objet du haut...
Auriez vous une astuce pour solutionner mon problème ?
Merci d'avance pour votre aide
Bonjour,
Quand j'ai vu Form, sous Excel, j'ai tout de suite pensé à UserForm, et puis un peu plus loin j'ai vu qu'il y avait des cellules. Il s'agit de contrôles insérés sur une feuille de calcul, donc, j'imagine ?
Si j'ai bien lu, tu obtiens le fonctionnement décrit par le code de MichDenis ? Et à la place tu voudrais obtenir le fonctionnement commandé par l'allumage du témoin scroll, c'est-à-dire que l'élément sélectionné reste sélectionné, mais que sa position à l'écran change ?
Il me semble qu'il faut regarder du côté de ActiveWindow.SmallScroll d'une part, et de ActiveWindow.ScrollRow et ActiveWindow.ScrollColumn d'autre part.
J'avais en tête un UpperLeftCell, mais apparemment, j'ai inventé.
HD
Quand j'ai vu Form, sous Excel, j'ai tout de suite pensé à UserForm, et puis un peu plus loin j'ai vu qu'il y avait des cellules.
Je me suis mal exprimé... effectivement, il s'agit bien d'un UserForm.
-- @+ HD
Quand j'ai vu Form, sous Excel, j'ai tout de suite pensé à UserForm, et
puis un peu plus
loin j'ai vu qu'il y avait des cellules.
Je me suis mal exprimé... effectivement, il s'agit bien d'un UserForm.
Quand j'ai vu Form, sous Excel, j'ai tout de suite pensé à UserForm, et puis un peu plus loin j'ai vu qu'il y avait des cellules.
Je me suis mal exprimé... effectivement, il s'agit bien d'un UserForm.
-- @+ HD
HD
Désolé si je me suis mal exprimé.... En fait, je suis bien sur un UserForm.
Exemple: J'appuis sur la touche "Entrée" ma macro est bien validée mais... Le focus passe sur le control suivant alors que je voudrais le laisser sur mon TextBox2. Et ce même avec l'utilisation de TextBox2.SetFocus
-- @+ HD
Désolé si je me suis mal exprimé....
En fait, je suis bien sur un UserForm.
Exemple: J'appuis sur la touche "Entrée" ma macro est bien validée mais...
Le focus passe sur le control suivant alors que je voudrais le laisser sur
mon TextBox2. Et ce même avec l'utilisation de TextBox2.SetFocus
Désolé si je me suis mal exprimé.... En fait, je suis bien sur un UserForm.
Exemple: J'appuis sur la touche "Entrée" ma macro est bien validée mais... Le focus passe sur le control suivant alors que je voudrais le laisser sur mon TextBox2. Et ce même avec l'utilisation de TextBox2.SetFocus
-- @+ HD
HD
KeyCode = 0
Ouille... j'ai loupé ces lignes là... Effectivement, le KeyCode = 0 dans l'événement TextBox2_KeyDown résoud le problème...
Merci à vous tous pour votre aide -- @+ HD
KeyCode = 0
Ouille... j'ai loupé ces lignes là... Effectivement, le KeyCode = 0 dans
l'événement TextBox2_KeyDown résoud le problème...