ouvrir menu

ouvrir menu - VB/VBA/VBS - Programmation

Marsh Posté le 24-05-2005 à 10:05:11    

bonjour, je voudrai ouvrir un userform en pressant ctrl + m par exemple, comment faire?
 
merci d'avance

Reply

Marsh Posté le 24-05-2005 à 10:05:11   

Reply

Marsh Posté le 24-05-2005 à 12:03:29    

Faudrait utiliser les évenements KeyUp, KeyDown ou KeyPress (suivant quand tu veux ouvrir ton formulaire)
 

Code :
  1. if e.KeyCode = Keys.M and e.Control = true then
  2.    'J'ouvre mon formulaire
  3. End if


 
Voila ca devrait ressembler à quelque chose comme ça!

Reply

Marsh Posté le 24-05-2005 à 12:22:49    

Humm -> Userform -> Excel, code fourni par Arwenalia .NET ... pas très compatible tout ça.
 
edit : je crois pas que ce soit faisable si tu n'a pas de userform affiché.


Message édité par knakes le 24-05-2005 à 12:25:05

---------------
now : do nothing
Reply

Marsh Posté le 24-05-2005 à 12:51:27    

Désolée, j'avais pas fait attention :$

Reply

Marsh Posté le 24-05-2005 à 13:02:43    

en faite, jai un userform qui sert de menu, avec des bouton de comande etc ...
 
pour afficher les resultats, qui sont sur des feuille excel, je cache mon userform avec un .hide
or, plutot que de faire un bouton sur chacune de mes feuille excel qui affiche le menu, je voudrai que lorsque je click sur ctrl +m mon userform s'affiche.
et c'est possible, car j'ai un programme (fait par une autre personne) qui fait cela, or j'ai beau chercher, impossible de trouver où est géré ceci :'(

Reply

Marsh Posté le 24-05-2005 à 20:07:15    

2 possibilités :
- Tu demande la source à l'autre personne
- Tu créé un bouton personnalisé dans la barre d'outils qui affiche ta userform ...


---------------
now : do nothing
Reply

Marsh Posté le 25-05-2005 à 10:44:41    

mais j'ai le code !     je n'arrive pas a trouver où est la partie de code correspondante.
 
quant au bouton dans la barre d'outil je ne savais pas   je vais tester.

Reply

Marsh Posté le 25-05-2005 à 11:20:05    

Outils > Macro > Macros
seection ta macro > Option

Reply

Marsh Posté le 27-05-2005 à 12:33:52    

ousp j'ai rien dit
 
en effet il y a une macro, mais le seul code est :  
 
Sub Macro2()
 
' Touche de raccourci du clavier: Ctrl+m
 
Principal.Show
 
End Sub
 
Or  où est le lien avec le moment où l'on tape ctrl +m ???


Message édité par rours le 27-05-2005 à 12:37:45
Reply

Marsh Posté le 27-05-2005 à 13:03:47    

fusion_sadam a écrit :

Outils > Macro > Macros
selectionne ta macro > Options


As-tu lu ce que Fusion_sadam a dit?


---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!
Reply

Marsh Posté le 27-05-2005 à 13:03:47   

Reply

Marsh Posté le 27-05-2005 à 13:34:50    

Une solution :
dans this workbook
Private Sub Workbook_BeforeClose(Cancel As Boolean)
 
Dim ControlsIndex As Integer
Dim NomBar As String
 
 
 
NomBar = "Nom du menu"
For ControlsIndex = 1 To 30
On Error GoTo LabelFin
    If Application.CommandBars("Worksheet Menu Bar" ).Controls(ControlsIndex).Caption = NomBar Then
        Application.CommandBars("Worksheet Menu Bar" ).Controls(ControlsIndex).Delete
        Exit For
    End If
Next
 
LabelFin:
 
End Sub
 
Private Sub Workbook_Open()
MonNouveauMenu
End Sub
 
Sub MonNouveauMenu()
 
NomProjetStat = ActiveWorkbook.Name
 
'###########################
'Si la barre existe déjà on l'efface et on la réaffiche
'###########################
Dim ControlsIndex As Integer
Dim NomBar As String
 
NomBar = "Nom du menu"
For ControlsIndex = 1 To 30
On Error GoTo LabelFin
    If Application.CommandBars("Worksheet Menu Bar" ).Controls(ControlsIndex).Caption = NomBar Then
        Application.CommandBars("Worksheet Menu Bar" ).Controls(ControlsIndex).Delete
        Exit For
    End If
Next
 
LabelFin:
 
'##########################
 
Dim MyBar
Dim SubMenu1, SubMenu11, SubMenu12
Dim SubMenu2, SubMenu21, SubMenu22
Dim SubMenu3, SubMenu31
Dim SubMenu4, SubMenu41, SubMenu42, SubMenu43, SubMenu44, SubMenu45, SubMenu46, SubMenu47
 
 
 
'Cette ligne crée le menu dans la barre de menu
Set MyBar = Application.CommandBars("Worksheet Menu Bar" ).Controls.Add(Type:=msoControlPopup, Before:=10)
MyBar.Caption = "Nom du menu" 'Donne un nom au menu
 
'##################################
'##### Les menus dans le menu #####
'##################################
Set SubMenu1 = MyBar.Controls.Add(Type:=msoControlPopup)
SubMenu1.Caption = "Nom sous menu"
SubMenu1.BeginGroup = True 'C'est pour faire la ligne de séparation dans le menu
 
Set SubMenu11 = SubMenu1.Controls.Add(Type:=msoControlButton)
With SubMenu11
    .BeginGroup = False
    .Caption = "Nom sous sous menu"
    .Style = msoButtonCaption
    .OnAction = "Nom de la macro à éxecuter"
End With
end sub

Reply

Marsh Posté le 27-05-2005 à 14:51:34    

Merci !!
 
:)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed