XL 2016 appel clavier Visuel Textbox VBA

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 !

GUYANA76

XLDnaute Nouveau
Bonjour , je dispose d'un formulaire ci-joint .
Mon but serait d'appeler pour les textbox le clavier visuel.
Après plusieurs recherche et test je ne trouve pas de solution. (je débute dans VBA )
pouvez-vous m'éclairer sur le sujet ?
Merci
 

Pièces jointes

bonsoir guyana76 bonsoir le forum
en vba dans un module
Sub test()
retval = Shell("cmd /c osk")
End Sub

dans l'userform
Private Sub LaTextbox_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Button = 1 Then
retval = Shell("cmd /c osk")
End If
End Sub
cordialement
galougalou
 

Pièces jointes

Bonjour Guyana, Galougalou,
J'ai tout essayé comme combinaison et ça marche pas sous XL2007.
C'est comme si le clavier apparaît puis disparaît. On voit juste un clignotement.
( A noter que sous Executer "C:\Windows\System32\osk.exe" ça marche impeccable )
Connaîtriez vous la cause ?
Guyana, ça marche sous 2016 ?
 
Bonjour Guyana, Galougalou,
J'ai tout essayé comme combinaison et ça marche pas sous XL2007.
C'est comme si le clavier apparaît puis disparaît. On voit juste un clignotement.
( A noter que sous Executer "C:\Windows\System32\osk.exe" ça marche impeccable )
Connaîtriez vous la cause ?
Guyana, ça marche sous 2016 ?

c'est bien le soucis avec shell et 2016 même en 32 il appelle la version 64 des fois alors que 2007 32 apelle toujours les versions 32 donc chemin complet pour etre sur

plusieurs méthodes
VB:
'version 1 avec api
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
    (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
    ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Sub ouvre_clavier_virtuel1()
        ShellExecute Application.hwnd, "open", "osk.exe", "", "", 1
End Sub

VB:
'version2
Sub ouvre_clavier_virtuel2()
  Shell "cmd /c C:\Windows\System32\osk.exe", vbNormalFocus
End Sub

VB:
'version3
Sub ouvre_clavier_virtuel3()
 CreateObject("wscript.shell").Run "C:\Windows\System32\osk.exe"
End Sub

et enfin pour le fermer
VB:
' et pour fermer
Sub ferme_clavier_virtuel()
 Dim wmi As Object, query$, osks
    Set wmi = GetObject("winmgmts:root\cimv2")
    query = "select * from win32_process where name=""osk.exe"""
    For Each osks In wmi.execquery(query)
        osks.Terminate
    Next
    Set wmi = Nothing
End Sub
😉
 
bonsoir guyana76 bonsoir le forum
en vba dans un module
Sub test()
retval = Shell("cmd /c osk")
End Sub

dans l'userform
Private Sub LaTextbox_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Button = 1 Then
retval = Shell("cmd /c osk")
End If
End Sub
cordialement
galougalou

Bonsoir, malheureusement ca ne fonctionne pas sur mon PC , mais c'est peut-être lié a des paramètres Windows.
J'attend une tablette sous W10 peut-etre le résultat bon . Je vais essayer de passer mon pc en mode tactile.
 
c'est bien le soucis avec shell et 2016 même en 32 il appelle la version 64 des fois alors que 2007 32 apelle toujours les versions 32 donc chemin complet pour etre sur

plusieurs méthodes
VB:
'version 1 avec api
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
    (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
    ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Sub ouvre_clavier_virtuel1()
        ShellExecute Application.hwnd, "open", "osk.exe", "", "", 1
End Sub

VB:
'version2
Sub ouvre_clavier_virtuel2()
  Shell "cmd /c C:\Windows\System32\osk.exe", vbNormalFocus
End Sub

VB:
'version3
Sub ouvre_clavier_virtuel3()
CreateObject("wscript.shell").Run "C:\Windows\System32\osk.exe"
End Sub

et enfin pour le fermer
VB:
' et pour fermer
Sub ferme_clavier_virtuel()
Dim wmi As Object, query$, osks
    Set wmi = GetObject("winmgmts:root\cimv2")
    query = "select * from win32_process where name=""osk.exe"""
    For Each osks In wmi.execquery(query)
        osks.Terminate
    Next
    Set wmi = Nothing
End Sub
😉
je suis un boulet j'ai essayer les 3 versions des que j'entre dans la textbox je quitte excel et je reveins a la page d'acceuil
 
bonsoir le forum
une idée comme ça
si la demande du clavier virtuel est lié à une difficulté d'utilisation de l'ordi, pour ne pas lui affecter un raccourci sur le bureau, pour un appel avec la souris ou avec l'écran tactile

pour le créer
double clic sur disque local C /windows/systeme 32
-CHERCHEZ EN BAS PARMIS LES FICHIER,et pas les dossier jaunes en haut de liste
-chercher en bas de liste bien après les dossiers le fichier nommé "osk";( apres le fichier "opengl32.dll" )
-clice droit
-creer racourci
cordialement
galougalou
 
- 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

Discussions similaires

Réponses
5
Affichages
466
Réponses
3
Affichages
243
  • Question Question
Microsoft 365 Erreur code Vba
Réponses
21
Affichages
912
Retour