IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Barre Menu Insertion d'un CTRL ou ALT


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 102
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 102
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  4. #4
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 102
    Par défaut
    Bjr,
    Afin de totalement cloturer ce sujet,
    J'ai essayé la proprieté ShortcutText
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer la barre menu sur BO C/S
    Par pendulaire dans le forum Administration-Migration
    Réponses: 3
    Dernier message: 31/12/2008, 14h14
  2. eliminer les menus de la barre "menu bar" access
    Par mapmip dans le forum Access
    Réponses: 3
    Dernier message: 12/02/2007, 19h27
  3. Modifier barre menu avec CSS
    Par Nimajneb dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 09/06/2006, 17h47
  4. [word]barre Menu Perdu Dans Word
    Par WELCOMSMAIL dans le forum Word
    Réponses: 5
    Dernier message: 02/06/2006, 16h07
  5. Objet manquant dans le menu insertion
    Par Speedy08 dans le forum Access
    Réponses: 3
    Dernier message: 17/03/2006, 20h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo