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

creer un clavier virtuel

demax

XLDnaute Occasionnel
Bonsoir à tous ,
Est ce qu'il est possible de mettre en place des boutons representant le clavier donc lettres et chiffres bouton entrée,
et bien sur de faire des saisies.
merci ,si vous pouvez me donner une direction de recherche!
 

pascal21

XLDnaute Barbatruc
Re : creer un clavier virtuel

bonsoir demax, jp14
il existe aussi la solution des toogles mais qui demande un très bon niveau en vba pour y parvenir
dans un de mes classeurs, j'utilise un clavier virtuel pour saisir des données sur un pc portable qui n'a pas de clavier numérique
la solution de jp reste la plus simple à mettre en place
 

Hulk

XLDnaute Barbatruc
Re : creer un clavier virtuel

Messieurs, Mesdames,

Sympa le p'tit osk.exe.. Pour l'ouvrir depuis Excel

Code:
Sub Clavier()
    Shell "C:\WINDOWS\system32\osk.exe"
End Sub

Merci pour cette petite astuce JP.

Cdt. Hulk.
 

Hulk

XLDnaute Barbatruc
Re : creer un clavier virtuel

Re,

Au fait j'essaie d'appliquer cette macro à un bouton que je veux placer sur la barre d'outils standar, j'ai bein enregistré la macro dans mon classeur PERSO.XLS, mais quand j'ouvre un nouveau classeur le bouton n'a plus la macro.

Comment je dois faire pour qu'à chaque nouveau classeur j'aille tjrs la macro sur ce bouton ?

Merci pour vos réponses.

Bonne soirée à tous, et au risque de me faire des ennemis ...
...Forza Argentina !

Hulk.
 

vbacrumble

XLDnaute Accro
Re : creer un clavier virtuel

Bonsoir


Tu peux mettre ta macro dans une macro complémentaire (extension :xla)
Et ensuite cocher cette macro (dans Outils/Macros complémentaires)
pour qu'elle soit disponible dans tous les classeurs.





Autrement, pour info :

Sub Clavier()
Shell "C:\WINDOWS\system32\osk.exe"
End Sub

ne fonctionne pas avec Windows Vista

Il faut procéder comme suit:

Code:
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 TestCLAVIER_V()
ShellExecute 0, "open", "osk.exe", "", "", 1
End Sub

Une version avec détection de l'OS
Code:
Sub TestCLAVIER_V()
Dim RetVal
Select Case Application.OperatingSystem
Case "Windows (32-bit) NT 6.00"
ShellExecute 0, "open", "osk.exe", 0, 0, 1
Case Else
RetVal = Shell("C:\WINDOWS\system32\osk.exe", 1)
End Select
End Sub

A+
 
Dernière édition:

Hulk

XLDnaute Barbatruc
Re : creer un clavier virtuel

Hello,

Ok merci vbacrumble pour ta réponse.

Mais comment je crée une macro complémantaire ??
Je suis allé dans macros complémentaires, puis ... Parcourir ?

J'dois le faire depuis le classeur actif ?

Merci d'avance.

Hulk.
 

vbacrumble

XLDnaute Accro
Re : creer un clavier virtuel

BonsoirRe

Ouvres un nouveau classeur (avec une seule feuille)
Copie le code VBA suivant, dans un module standard.
Code:
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 CLAVIERVIRTUEL()
Dim strOS$, tOS$: Dim RetVaL
strOS = Application.OperatingSystem
tOS = Trim(Mid(strOS, InStr(1, strOS, ")") + 1, 255))
    Select Case tOS
        Case "NT 6.00"
        ShellExecute 0, "open", "osk.exe", 0, 0, 1
        Case "NT 5.01"
        RetVaL = Shell("C:\WINDOWS\system32\osk.exe", 1)
    End Select
End Sub

Sub tmptool()
Dim tpo As CommandBar, Btn1 As CommandBarButton
deltool
On Error Resume Next
Set tpo = Application.CommandBars.Add("Clavier virtuel")
With tpo
    .Position = msoBarTop
    Set Btn1 = .Controls.Add(msoControlButton)
    With Btn1
      .Style = msoButtonIconAndCaptionBelow
      .Caption = "Lancer le clavier."
      .FaceId = 728
      .OnAction = "CLAVIERVIRTUEL"
    End With
    .Visible = True
  End With
End Sub

Sub deltool()
On Error Resume Next
Application.CommandBars("Clavier virtuel").Delete
End Sub

Dans ThisWorbook, copie le code ci-dessous
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call deltool
End Sub
Private Sub Workbook_Open()
Call tmptool
End Sub

Enfin Enregistres ce classeur en macro complémentaire
par ex: ClavierVirtuel.xla
(choisir dans Type de fichier:Macro complémentaire.xla)
Ferme ce classeur et Excel

Puis ouvres Excel->Outils/Macros complémentaires/coche ClavierVirtuel

Désormais quand tu ouvriras Excel, tu disposeras d'un bouton permettant de lancer le clavier virtuel.


A+
 
Dernière édition:

Hulk

XLDnaute Barbatruc
Re : creer un clavier virtuel

Hello,

Ok super.
Je trouvais juste un peu gros comme bouton, donc j'ai supprimer la Caption, le dessin est déjà bien explicite.

C'est vraiment super vbacrumble, cependant n'est-ce pas possible de le mettre dans la barre Standar déjà existante ?

Mais me répète déjà comme ça c'est bestial.

Merci.

Hulk.
 

vbacrumble

XLDnaute Accro
Re : creer un clavier virtuel

Rebonsoir

Dans ce cas, essaie avec ce code VBA

Code:
Sub tmptool()
Dim tpo As CommandBarButton
resetbo
On Error Resume Next
Set tpo = Application.CommandBars("Standard").Controls. _
Add(Type:=msoControlButton)
With tpo
    .Style = msoButtonIcon
    .FaceId = 728
    .OnAction = "CLAVIERVIRTUEL"
    .TooltipText = "Lance le clavier virtuel."
End With
End Sub
Code:
Sub resetbo()
'permet de rétablir la barre d'outils Standard
Application.CommandBars("Standard").Reset
End Sub

Donc à appeler dans WorkBook_Open

A+
 
Dernière édition:

Hulk

XLDnaute Barbatruc
Re : creer un clavier virtuel

Re,

C'est bien ceci dans un module
Code:
Sub tmptool()
Dim tpo As CommandBarButton
resetbo
On Error Resume Next
Set tpo = Application.CommandBars("Standard").Controls. _
Add(Type:=msoControlButton, before:=22)
With tpo
    .Style = msoButtonIcon
    .FaceId = 728
    .OnAction = "CLAVIERVIRTUEL"
    .TooltipText = "Lance le clavier virtuel."
End With
End Sub

Sub resetbo()
'permet de rétablir la barre d'outils Standard
Application.CommandBars("Standard").Reset
End Sub
et ça
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
resetbo
End Sub

Private Sub Workbook_Open()
tmptool
End Sub
dans le ThisWorkBook ?

Parce que une fois enregistré en xla, j'ouvre un nouveau classeur, il affiche bien l'icône dans la barre standar, mais il me dit qu'il ne trouve pas la macro "CLAVIERVIRTUEL" et pourtant je l'ai cochée !

Merci, cdt, Hulk.
 

vbacrumble

XLDnaute Accro
Re : creer un clavier virtuel

Re


Oui ces codes doivent être dans le fichier xla.

Sur Excel 2000 cela fonctionne. (je viens de créer un xla et de le tester)

Vérifie que les codes sont bien présents (comme indiqué dans un module et dans ThisWorkbook)

Ferme Excel et le relances le.

PS: j'ai modifié le code du précédent message pour placer le bouton à la fin de la barre d'outils Standard.

A+
 

Hulk

XLDnaute Barbatruc
Re : creer un clavier virtuel

Bonjour à tous,

Sorry, j'ai du finalement aller me coucher, ce matin debout à 05h30

Ok j'ai pigé, ça marche, impec vbacrumble.

Il trouvait pas la macro "CLAVIERVIRTUEL", car elle n'y était pas ! Je pensais que c'était sans cette partie (la plus importante ), jusqu'à c'que ce matin je fasse tilt. (La nuit porte bien conseil )

Donc j'ai mis ceci dans un module..
Code:
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 CLAVIERVIRTUEL()
Dim strOS$, tOS$: Dim RetVaL
strOS = Application.OperatingSystem
tOS = Trim(Mid(strOS, InStr(1, strOS, ")") + 1, 255))
    Select Case tOS
        Case "NT 6.00"
        ShellExecute 0, "open", "osk.exe", 0, 0, 1
        Case "NT 5.01"
        RetVaL = Shell("C:\WINDOWS\system32\osk.exe", 1)
    End Select
End Sub
'*********************************************
Sub tmptool()
Dim tpo As CommandBarButton
resetbo
On Error Resume Next
Set tpo = Application.CommandBars("Standard").Controls. _
Add(Type:=msoControlButton)
With tpo
    .Style = msoButtonIcon
    .FaceId = 728
    .OnAction = "CLAVIERVIRTUEL"
    .TooltipText = "Lance le clavier virtuel."
End With
End Sub
'*********************************************
Sub resetbo()
'permet de rétablir la barre d'outils Standard
Application.CommandBars("Standard").Reset
End Sub
et ça dans le THisWorkBook..
Code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
resetbo
End Sub
'*********************************************
Private Sub Workbook_Open()
tmptool
End Sub
puis donc enregistrer en xla, fermer, ouvrir et côcher la macro complémentaire et ça joue super bien !

Merci encore pour ton aide vbacrumble !

Bonne journée à tous.

Hulk.
 
Dernière édition:

Hulk

XLDnaute Barbatruc
Re : creer un clavier virtuel

Hello,

J'ai dit
Au fait j'essaie d'appliquer cette macro à un bouton que je veux placer sur la barre d'outils standar, j'ai bien enregistré la macro dans mon classeur PERSO.XLS, mais quand j'ouvre un nouveau classeur le bouton n'a plus la macro.

Avec ce petit code donc..
Code:
Sub Clavier()
    Shell "C:\WINDOWS\system32\osk.exe"
End Sub
Ca ne devrait pas jouer non plus comme ça, je ne devrais pas l'avoir à chaque nouveau classeur ?
Faut-il que le classeur PERSO soit toujours ouvert dans ce cas ?

Cdt, Hulk.
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…