Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/12/2011, 13h21   #1
Nouveau Membre du Club
 
Inscription : décembre 2003
Messages : 90
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 90
Points : 26
Points : 26
Envoyer un message via MSN à mennix
Par défaut Barre Menu Insertion d'un CTRL ou ALT

Bonjour,
Je cherche depuis un petit moment un code permettant d'inserer dans une barre menu, l'information CTRL+xx ou ALT+xx avec l'affichage a Droite pour cette information, le reste en marge a gauche.
en gros :

FICHIER CTRL+A
OUVRIR ALT+A

En delphi, on utilise de mémoire un code dans le texte du style :
FICHIER\t CTRL+A.
mais sous VBA
Code :
1
2
3
4
5
 
(...)
.Controls.add(Type:=msoControlPopup, Temporary:=True)
            .Caption = "Fichier\t CTRL+A"
(...)
ne fonctionne pas, y a-t-il une astuce?

Merci a vous par avance.
mennix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2011, 17h58   #2
Expert Confirmé Sénior
 
Avatar de Qwazerty
 
Homme Stéphane
La très haute tension :D
Inscription : avril 2002
Messages : 2 446
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Âge : 32
Localisation : France

Informations professionnelles :
Activité : La très haute tension :D
Secteur : Service public

Informations forums :
Inscription : avril 2002
Messages : 2 446
Points : 4 620
Points : 4 620
Envoyer un message via MSN à Qwazerty
Salut

Code :
1
2
3
Dim strTab As String
 
strTab = "Essai" & Chr(9) & "Tabulation"
++
Qwaz
__________________

MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
HammerFest
Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer
Qwazerty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 11h03   #3
Nouveau Membre du Club
 
Inscription : décembre 2003
Messages : 90
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 90
Points : 26
Points : 26
Envoyer un message via MSN à mennix
Bonjour Qwazerty

J'ai essayé d'y ajouter le code Ascii 9, mais au lieu de m'afficher dans la barre de menu Requéteur.................. Ctrl+F12
J'ai RequéteurxCtrl+F12 ................. x-->pour un code ascii non affichable.

Code :
1
2
3
4
5
6
7
8
 
        With .Controls.add(Type:=msoControlButton, Temporary:=True)
                .Caption = "&Requéteur " & Chr(9) & "(Ctrl+F12)"
                .BeginGroup = True
                .faceId = 25
                .OnAction = "reqxls.voir_Base_data.viewer"
 
         End With
C ne fonctionne pas.
Suis pas sur que c'est possible avec les fonctions livrées par le VBA.
Il faut peut etre passer par les Api(Getmenu.etc...)

Je pense avoir trouvé, il faut utiliser la proprieté .shorcutText y mettre son texte.
Seulement pour VBA Excel 2002, cette prorieté n'existe pas encore, en 2007, c'est ok. Je n'ai plus qu'a attendre qu'a mon taf, il se decide a changer evoluer notre version d'Excel.
T.
mennix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2011, 17h39   #4
Expert Confirmé Sénior
 
Avatar de Qwazerty
 
Homme Stéphane
La très haute tension :D
Inscription : avril 2002
Messages : 2 446
Détails du profil
Informations personnelles :
Nom : Homme Stéphane
Âge : 32
Localisation : France

Informations professionnelles :
Activité : La très haute tension :D
Secteur : Service public

Informations forums :
Inscription : avril 2002
Messages : 2 446
Points : 4 620
Points : 4 620
Envoyer un message via MSN à Qwazerty
Salut

Tu peux aussi palier à ce manque en faisant comme ça.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Option Explicit
 
Function FormatShortCut(NomCommande As String, Tabulation As Integer, ShortCut As String)
'Le but est de toujours placé le ShortCut à la même distance de la gauche (valeur de Tabulation)
'On verifie que la longueur du texte NomCommande tient dans le nombre de caracteres demandé via tTabulation
If Tabulation > Len(NomCommande) Then
    FormatShortCut = NomCommande & Space(Tabulation - Len(NomCommande)) & ShortCut
Else
    'Si ce n'est pas le cas, on note uniquement la commande
    FormatShortCut = NomCommande
End If
End Function
 
Sub Utilisation()
Dim StrTexte As String
 
Debug.Print FormatShortCut("Requéteur", 15, "Ctrl+F12")
Debug.Print FormatShortCut("Lancement Action", 15, "Ctrl+L") 'on dépasse les 15 caractères
Debug.Print FormatShortCut("Vider Valeur", 15, "Ctrl+F9")
Debug.Print FormatShortCut("Placer Valeur", 15, "Ctrl+F8")
End Sub
++
Qwaz
__________________

MagicQwaz := Harry Potter la baguette en moins
Le monde dans lequel on vit
HammerFest
Ma page perso DVP - Dernier Tutoriel : VBA & Internet Explorer
Qwazerty est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2011, 06h50   #5
Nouveau Membre du Club
 
Inscription : décembre 2003
Messages : 90
Détails du profil
Informations forums :
Inscription : décembre 2003
Messages : 90
Points : 26
Points : 26
Envoyer un message via MSN à mennix
Bjr,
Afin de totalement cloturer ce sujet,
J'ai essayé la proprieté ShortcutText
Code :
1
2
3
4
5
6
7
8
 
      With .Controls.add(Type:=msoControlButton, Temporary:=True)
                .Caption = "&Requéteur"
                .BeginGroup = True
                .faceId = 25
                .ShortcutText = "Ctrl+F12"
                .OnAction = "reqxls.viewer"   
         End With
Ceci fonctionne tres bien avec Excel 2002/2003, en fait la propriété n'apparait pas dans l'aide IDE de VBA, mais elle existe.
Si cela peut aider.

Sinon ton idée est bonne Qwazerty, a la condition que chaque caractere texte soit dimensionné du meme nombre de pixel, sinon, il te faudra plus d'espace que certaine autre ligne des menus. ou bien utiliser la fonction GetExtent.... (permettant de calculer la taille reelle en pixel de ta chaine).
mais l'idée est la.

bon début de semain à tous.
t
mennix est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h24.


 
 
 
 
Partenaires

Hébergement Web