Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
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 23/05/2011, 19h10   #1
Membre habitué
 
Homme
Conseil - Consultant en systèmes d'information
Inscription : octobre 2008
Messages : 212
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 51
Localisation : France

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

Informations forums :
Inscription : octobre 2008
Messages : 212
Points : 126
Points : 126
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,
Triton972 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 20h14   #2
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 615
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 615
Points : 30 962
Points : 30 962
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

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

Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 22h59   #3
Membre habitué
 
Homme
Conseil - Consultant en systèmes d'information
Inscription : octobre 2008
Messages : 212
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 51
Localisation : France

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

Informations forums :
Inscription : octobre 2008
Messages : 212
Points : 126
Points : 126
Bonsoir,

Voici le code que j'utilise

Code :
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 :
Set btn = cmb.Controls.Add(msoControlButton, 7058)  'Supprimer Filtre
est toujours inactive.

Cordialement,
Triton972 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 05h09   #4
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 615
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 615
Points : 30 962
Points : 30 962
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

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

Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 16h08   #5
Membre habitué
 
Homme
Conseil - Consultant en systèmes d'information
Inscription : octobre 2008
Messages : 212
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 51
Localisation : France

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

Informations forums :
Inscription : octobre 2008
Messages : 212
Points : 126
Points : 126
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
Triton972 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 22h40   #6
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
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 : 3 939
Points : 6 278
Points : 6 278
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 :
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+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 25/05/2011, 02h01   #7
Membre habitué
 
Homme
Conseil - Consultant en systèmes d'information
Inscription : octobre 2008
Messages : 212
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 51
Localisation : France

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

Informations forums :
Inscription : octobre 2008
Messages : 212
Points : 126
Points : 126
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,
Triton972 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/05/2011, 19h06   #8
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
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 : 3 939
Points : 6 278
Points : 6 278
Bonjour,

Erreur de copier/coller.
Dans mon code la barre d'outil est cmdBar, et chez toi c'est cmb.
Donc, pour toi :
Code :
Application.CommandBars("Form View Control").FindControl(, 11108).Copy cmb
A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 25/05/2011, 23h21   #9
Membre habitué
 
Homme
Conseil - Consultant en systèmes d'information
Inscription : octobre 2008
Messages : 212
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 51
Localisation : France

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

Informations forums :
Inscription : octobre 2008
Messages : 212
Points : 126
Points : 126
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é ...
@+
Triton972 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 13h58.


 
 
 
 
Partenaires

Hébergement Web