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 ?
'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
'version2
Sub ouvre_clavier_virtuel2()
Shell "cmd /c C:\Windows\System32\osk.exe", vbNormalFocus
End Sub
'version3
Sub ouvre_clavier_virtuel3()
CreateObject("wscript.shell").Run "C:\Windows\System32\osk.exe"
End Sub
' 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
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'acceuilc'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