Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Application.SendKeys ("~"), True laisse indifférent excel sous vista

  • Initiateur de la discussion Initiateur de la discussion carlos
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

carlos

XLDnaute Impliqué
Bonsoir
cette ligne fonctionne tres bien sous xp mais laisse indifférent excel sous vista.

Ca ne provoque pas de bug mais ....
cela me permettait "d'appuyer" virtuellement sur un bouton pour declencher l'evenement .

Tournoi.Controls("F1P" & a).SetFocus
Application.SendKeys ("~"), True


Merci de m'aider

Carlos
 
Re : Application.SendKeys ("~"), True laisse indifférent excel sous vista

Bonjour,

Essayez en utilisant l'Api Windows keybd_event comme dans l'exemple joint

1) Dans un nouveau classeur, créez un UserForm1 avec 4 TextBox (TextBox1, TextBox2, TextBox3, TextBox4)
2) Copiez le code suivant dans un module standard
Code:
Public Declare Sub keybd_event Lib "user32.dll" ( _
  ByVal bVk As Byte, ByVal bScan As Byte, _
  ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Const VK_RETURN = &HD
Const KEYEVENTF_EXTENDEDKEY = &H1
Const KEYEVENTF_KEYUP = &H2

Const VK_Z = &H5A 'pour l'exemple

Sub LanceUserForm()
Dim i&
'--- Donne le focus à la 3ème TextBox ---
UserForm1.Controls("TextBox3").SetFocus
'--- Y inscrit 5 fois "z" ---
For i& = 1 To 5
  keybd_event VK_Z, 0, 0, 0
  keybd_event VK_Z, 0, KEYEVENTF_KEYUP, 0
Next i&
    '### Ce qui vous intéresse ###
'--- Simule Enter (donne le focus au contrôle suivant) ---
keybd_event VK_RETURN, 0, 0, 0
keybd_event VK_RETURN, 0, KEYEVENTF_KEYUP, 0
    '#############################
'--- Active le UserForm ---
UserForm1.Show
End Sub
3) Lancez la macro LanceUserForm.
Le Userform apparaît avec le focus sur TextBox3 où on simule la frappe "zzzz" puis la touche "Entrée" ce qui donne le focus à TextBox4.

Cordialement.

PMO
Patrick Morange
 
Re : Application.SendKeys ("~"), True laisse indifférent excel sous vista

Bonsoir a tous,

J'utilise la solution de PMO2 ca fonctionne tres bien avec les quatre textbox.
Par contre dans mon application j'ai d'autres textbox qui sont remplis par progammation comme date et numero de facture et autres.
Je ne veux pas qu'il donne le focus a la date par exemple. J'aimerais avoir le controle sur setfocus de mon choix .
Merci d'avance
Ta solution me donne beaucoup d'espoir dans la poursuite de mon application
 
Re : Application.SendKeys ("~"), True laisse indifférent excel sous vista

Bonjour,

Essayez avec le code suivant

Code:
Public Declare Sub keybd_event Lib "user32.dll" ( _
  ByVal bVk As Byte, ByVal bScan As Byte, _
  ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Const VK_RETURN = &HD
Const KEYEVENTF_EXTENDEDKEY = &H1
Const KEYEVENTF_KEYUP = &H2

Const VK_Z = &H5A 'pour l'exemple

Sub LanceUserForm()
Dim i&

'### Saute la tabulation/focus sur TextBox4 ###
'### mais on peut y accéder à la main
UserForm1.TextBox4.TabStop = False

'### Bloque l'accès à TextBox4 ###
''With UserForm1.TextBox4
''  .Text = Format(Now, "dd/mm/yy")
''  .Locked = True  ' OU ALORS .Enabled = False
''End With
 

'--- Donne le focus à la 3ème TextBox ---
UserForm1.Controls("TextBox3").SetFocus
'--- Y inscrit 5 fois "z" ---
For i& = 1 To 5
  keybd_event VK_Z, 0, 0, 0
  keybd_event VK_Z, 0, KEYEVENTF_KEYUP, 0
Next i&
    '### Ce qui vous intéresse ###
'--- Simule Enter (donne le focus au contrôle suivant) ---
keybd_event VK_RETURN, 0, 0, 0
keybd_event VK_RETURN, 0, KEYEVENTF_KEYUP, 0
    '#############################
'--- Active le UserForm ---
UserForm1.Show
End Sub

Cordialement.

PMO
Patrick Morange
 
Re : Application.SendKeys ("~"), True laisse indifférent excel sous vista

Bonjour le forum

J'ai terminé mon programme de caisse grâce a tes conseils, je cherchais la solution depuis plus d'une semaine.

MERCI beaucoup a PMO2

Normand
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…