XL 2016 appel clavier Visuel Textbox VBA

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

  • usftxtbox.xlsm
    127.2 KB · Affichages: 11

GALOUGALOU

XLDnaute Accro
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

  • Clavier_osk.xlsm
    16.7 KB · Affichages: 18

sylvanu

XLDnaute Barbatruc
Supporter XLD
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 ?
 

patricktoulon

XLDnaute Barbatruc
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
;)
 

GUYANA76

XLDnaute Nouveau
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.
 

GUYANA76

XLDnaute Nouveau
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
 

GALOUGALOU

XLDnaute Accro
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
 

Discussions similaires

Réponses
21
Affichages
331