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

IHM Discussion :

Pb d'ergonomie d'un menu contextuel personnalisé [AC-2007]


Sujet :

IHM

  1. #1
    Membre actif
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2008
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 330
    Points : 207
    Points
    207
    Par défaut Pb d'ergonomie d'un menu contextuel personnalisé
    Bonjour,

    J'ai mis en place des menus contextuels dans mes formulaires à partir des exemples de Philippe JOCHMANS. Ils marchent très bien par contre, je souhaiterais optimiser légèrement leur ergonomie :

    J'autorise dans le menu contextuel l'accès à différents modes de filtre :

    - Filtrer par sélection
    - Filtrer hors sélection
    - Filtrer

    Tout fonctionne comme prévu sauf que je n'arrive pas à injecter au 1° niveau du menu contextuel la commande "Supprimer le filtre dans ...". Cette option n'est disponible qu'au 2° niveau du menu "Filtrer", ce que je trouve un peu "trop profond" dans l'arborescence.

    Y a-t-il un moyen de "remonter" cette option au 1° niveau du menu contextuel ?

    Merci de vos aides.
    Cordialement,

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Peux-tu donner plus de détails, entre autre le code que tu as utilisé.

    Philippe

  3. #3
    Membre actif
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2008
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 330
    Points : 207
    Points
    207
    Par défaut
    Bonsoir,

    Voici le code que j'utilise

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Public Sub ContextuelForm()
        ' ======================================================================================
        ' Auteur        : Starec - Philippe JOCHMANS - http://starec.developpez.com
        ' Description   : Création d'un menu contrextuel simple
        '=======================================================================================
     
        ' ===== déclaration =====
        Dim cmb As Office.CommandBar
        Dim btn As Office.CommandBarButton
        Dim picImage As IPictureDisp
     
        ' ===== suppression de la barre existante =====
        On Error Resume Next
        Application.CommandBars("Menu_Context_Form1").Delete
     
        ' ===== génération du menu contextuel ======
        Set cmb = Application.CommandBars.Add("Menu_Context_Form1", msoBarPopup)
     
        Set btn = cmb.Controls.Add(msoControlButton, 210)   'Tri AZ
        Set btn = cmb.Controls.Add(msoControlButton, 211)   'Tri ZA
        Set btn = cmb.Controls.Add(msoControlButton, 21)    'Couper
        Set btn = cmb.Controls.Add(msoControlButton, 19)    'Copier
        Set btn = cmb.Controls.Add(msoControlButton, 22)    'Coller
        Set btn = cmb.Controls.Add(msoControlButton, 640)   'Filtrer par sélection
        Set btn = cmb.Controls.Add(msoControlButton, 3017)  'Filtrer hors sélection
        Set btn = cmb.Controls.Add(msoControlButton, 7058)  'Supprimer Filtre   => ne s'intègre pas au menu
        Set btn = cmb.Controls.Add(msoControlButton)
        With btn
            .Caption = "&Filtrer"
            .Style = msoButtonCaption
            .OnAction = "FilterMenu"
        End With
     
    End Sub
    Je lance la procédure dans l'évènement "Load" de mon formulaire de démarrage.

    Autre chose que je n'ai pas mentionné dans mon 1° post, j'utilise exclusivement l'application sous le format .accde.

    Donc la ligne avant la création du sous-menu "Filtrer"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set btn = cmb.Controls.Add(msoControlButton, 7058)  'Supprimer Filtre
    est toujours inactive.

    Cordialement,

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Je viens de tester ton code, tous les éléments du menu contextuel s'affichent correctement, mais sont inactifs.

    Philippe

  5. #5
    Membre actif
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2008
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 330
    Points : 207
    Points
    207
    Par défaut
    Bonjour Philippe,

    Merci pour ta réponse. Chez moi tout est actif sauf "Supprimer filtre" !
    Que puis-je faire ? Y a -t-il une solution ?
    Cordialement

  6. #6
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 762
    Points
    7 762
    Par défaut
    Bonsoir,

    Tu peux essayer avec l'id 605 pour enlever tout les filtres.

    Il y a aussi l'id 11108 pour supprimer le filtre sur le champ actif.
    Pour celui-la je suis obligé d'utiliser cette méthode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.CommandBars("Form View Control").FindControl(, 11108).Copy cmdBar cmb
    Dans cette même barre de menu "Form View Control" on a aussi :
    10068 : égal à valeur_champ_actif
    10071 : différent de valeur_champ_actif
    Ce doivent être les équivalents Access 2007, de filtre par sélection et hors sélection.

    A+

  7. #7
    Membre actif
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2008
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 330
    Points : 207
    Points
    207
    Par défaut
    Bonsoir LedZeppII,

    Tout çà est fort intéressant J'ai néanmoins quelques difficultés à adapter ta ligne de code pour l'Id 11108, en particulier concernant la variable "cmdBar".
    Peux-tu me donner un dernier coup de main pour çà afin de rendre ta ligne de code opérationnel chez moi.
    Cordialement,

  8. #8
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 762
    Points
    7 762
    Par défaut
    Bonjour,

    Erreur de copier/coller.
    Dans mon code la barre d'outil est cmdBar, et chez toi c'est cmb.
    Donc, pour toi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.CommandBars("Form View Control").FindControl(, 11108).Copy cmb
    A+

  9. #9
    Membre actif
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2008
    Messages
    330
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 330
    Points : 207
    Points
    207
    Par défaut
    Bonsoir LedZepII,


    Super, un problème que je trainais depuis longtemps et qui est, enfin, résolu.
    Un grand merci !
    J'en ai d'autres en magasin (des problèmes non résolus ...) qui sont exposés dans le forum et qui n'attendent que ta sagacité ...
    @+

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

Discussions similaires

  1. regedit Menu Contextuel personnalisé
    Par seb-65 dans le forum Windows XP
    Réponses: 9
    Dernier message: 12/06/2012, 11h50
  2. [AC-2010] Menu contextuel personnalisé
    Par frouppy dans le forum IHM
    Réponses: 2
    Dernier message: 20/05/2012, 23h54
  3. Menu contextuel personnalisé selon type fichier
    Par iBen68 dans le forum Développement Windows
    Réponses: 4
    Dernier message: 07/09/2010, 15h54
  4. [AC-2007] Pb Menu contextuel personnalisé et sous-formulaire
    Par Triton972 dans le forum IHM
    Réponses: 1
    Dernier message: 19/11/2009, 03h02
  5. Comment supprimer un Menu contextuel personnalisé ?
    Par evlp2004@hotmail.com dans le forum Access
    Réponses: 2
    Dernier message: 10/04/2008, 16h24

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