|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() Inscription : novembre 2010 Messages : 101 ![]() |
Bonjour,
Je souhaite afficher un autre ruban que celui prédéfini dans Option\BD active\Nom du ruban. Je m'explique : Dans mon application les rubans sont dans une table USysRibbons qui comporte un champ NomRuban et autre XMLRuban. A l'ouverture d'un formulaire de démarrage je charge tous les rubans grâce à une fonction LoadRibbons. J'ai défini le ruban par défaut (rubGENERAL) dans Option\BD active\Nom du ruban. Lorsque je clique sur un des boutons de rubGENERAL, je souhaite qu'il soit remplacé ponctuellement par rubSPECIFIQUE. Aujourd'hui je contourne en ouvrant un formulaire et en executant : Code :
Forms!NomDuFormulaire.RibbonName = rubSPECIFIQUE Ma question est la suivante : Je souhaite afficher rubSPECIFIQUE sans passer par l'ouverture d'un formulaire. Est ce possible ? J'ai bien lu les tutos mais je ne trouve pas ce qui correspond à mon besoin. D'avance merci |
|
|
00
|
|
|
#2 |
![]() ![]() Morgan BILLYTechnicien de Production Inscription : octobre 2004 Messages : 4 103 ![]() |
Bonjour,
Il suffit de créer des onglets dans le Ruban et de jouer sur la visibilité de ceux-ci. exemple : onglet principal et onglet secondaire. tu affiche le principale par défaut et quand tu le souhaite tu le rend visible et tu affiche l'autre Dolphy
__________________
Personnaliser la vue Backstage d'Access 2010 Découvrez avec nous Office 2010 Je ne réponds pas aux questions techniques par MP
|
|
00
|
|
|
#3 | ||||||
|
Membre régulier
![]() Inscription : novembre 2010 Messages : 101 ![]() |
Bonjour et merci pour la réponse mais j'ai du mal ...
... je suis le tuto http://arkham46.developpez.com/artic...bbon2010/#LVII mais, comme beaucoup sur ce forum, je fais des copier coller en essayant de suivre tant bien que mal. Voici mon LoadRibbons : Code :
Code :
Code :
J'ai une erreur 91 variable ... non définie. Mon onglet personnalisé "TabCDC" n'est pas défini pourtant lorsque je compile je n'ai pas de message. J'essais depuis hier et la je sèche !! |
||||||
|
|
00
|
|
|
#4 | ||
![]() ![]() Inscription : septembre 2003 Messages : 4 300 ![]() |
d'abord pour l'objet oRibbon voir ici : http://warin.developpez.com/access/ruban/#LVII.A
il faut l'initiliser sur le onLoad du ruban ensuite ce n'est pas ActivateTab qu'il faut utiliser (cela active l'onglet, ce n'est pas une visibilité) il faut jouer avec le getVisible de l'onglet (et retirer l'attribut visible) Code :
<tab id="tabCDC" label="Responsable centre" getVisible="TabCDCGetVisible"> Code :
- TabCDCisVisible est False à l'ouverture de la base - TabCDC appelle TabCDCGetVisible pour savoir s'il doit être affiché => non affiché par défaut à l'ouverture - sur clic sur le bouton, Sub_Admin03 met TabCDCisVisible à True et demande la raffraîchissement de tabCDC - TabCDC appelle donc à nouveau TabCDCGetVisible pour savoir s'il doit être affiché => il est affiché car TabCDCisVisible est True
__________________
Assistant de création/modification de rubans Office Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL Blog Office Mon Site DVP |
||
|
|
10
|
|
|
#5 | ||||||||||||
|
Membre régulier
![]() Inscription : novembre 2010 Messages : 101 ![]() |
Bonjour et merci pour la réponse,
Je n'y arrive toujours pas. Cette fois ci le ruban ne se charge plus comme si "TabCDCisVisible" n'était pas reconnu dans l'XML. Mes autres rubans sont bien chargés. Voici l'XML modifié : Code :
Voici le code modifié : Initialisation des variables Code :
Code :
Code :
Code :
Code :
|
||||||||||||
|
|
00
|
|
|
#6 | ||
![]() ![]() Inscription : septembre 2003 Messages : 4 300 ![]() |
je me suis trompé
il n'y a pas de première majuscule à getVisible : Code xml :
oui le RibbonOnLoad est utile lorsque le ruban est chargé, le onLoad du ruban exécute RibbonOnLoad qui initialise alors oRibbon remarque : si ta table USysRibbons est correcte, LoadRibbons est inutile, Access charge les rubans de cette table au démarrage cf : http://www.developpez.net/forums/d66...-base-donnees/ le champ ID est optionnel mais les autres doivent avoir le nom et le type de données spécifiés Charger ses rubans avec LoadCustomUI est utile si on ne souhaite pas tous les charger systématiquement, ou si on est dans un projet ADP, ou si on ne stocke pas ses rubans dans une table remarque2 : on peut demander l'affichage des erreurs du ruban, pratique pour le débogage cf "Activer l'affichage des messages d'erreur de compléments d'interface utilisateur" dans cette page : http://office.microsoft.com/fr-ca/ac...010211415.aspx Avec les erreurs activées, on devrait voir un message d'erreur pour un problème de majuscule (GetVisible au lieu de getVisible) par exemple. Cela évite de perdre du temps à chercher l'erreur. remarque3 : je fais de la pub pour mon assistant-ruban qui pourra t'aider à rédiger le xml les rubans de table uSysRibbon sont trouvées si la table possèdent bien des champs nommés RibbonName et RibbonXml
__________________
Assistant de création/modification de rubans Office Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL Blog Office Mon Site DVP |
||
|
|
10
|
|
|
#7 |
|
Membre régulier
![]() Inscription : novembre 2010 Messages : 101 ![]() |
Merci pour l'aide précieuse
J'arrive à charger le ruban effectivement c'était la majuscule. Par contre lorsque je clique sur le bouton qui execute sub_admin03, j'ai toujours une erreur "91 variable ... non définie" et le debogage me dirige sur "oRibbon.InvalidateControl "tabCDC" " En ce qui concerne l'assistant ça doit être du bonheur je vais tester - Merci beaucoup. (ça a du être du boulot pour créer l'interface) ![]() En ce qui concerne "Activer l'affichage des messages d'erreur de compléments d'interface utilisateur" je suis avec 2010 et chez MS ils ont du changer l'option de place ou de nom je ne trouve pas ! Même dans l'aide Encore merci pour la patience et le temps passé |
|
|
00
|
|
|
#8 | ||
![]() ![]() Inscription : septembre 2003 Messages : 4 300 ![]() |
Citation:
RibbonOnLoad est-il bien exécuté? (on peut mettre un Stop ou un MsgBox dans la procédure pour le vérifier) c'est bien oRibbon partout (dans la procédure et dans la déclaration), il n'y a pas une erreur d'étourderie dans le nom de la variable? Citation:
par contre j'ai un peu eu du mal à trouver l'option la première fois, c'est noyé au mileu de plusieurs pages mais ça doit y être
__________________
Assistant de création/modification de rubans Office Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL Blog Office Mon Site DVP |
||
|
|
00
|
|
|
#9 |
|
Membre régulier
![]() Inscription : novembre 2010 Messages : 101 ![]() |
OUPS comme disent les jeunes
C'est moi, à force de mettre et d'enlever, qui avais effacé le "onLoad="RibbonOnLoad">" du XML. Ca fonctionne parfaitement. Donc je vais (tenter d') adapter afin que le tabCDC apparaisse suite à la saisie d'un mot de passe En ce qui concerne la table USysRibbons j'ai changé les noms de champs et les rubans se chargent bien au démarrage automatiquement. C'est nickel ! Encore merci pour les réponses. @ bientôt certainement |
|
|
00
|
|
|
#10 | ||
|
Membre régulier
![]() Inscription : novembre 2010 Messages : 101 ![]() |
Bonjour,
Cette fois ci j'arrive bien à faire apparaitre et disparaitre le "tabCDC" en cliquant sur des boutons. Mais l'interêt du dispositif c'est de faire saisir un indentifiant/pass à l'utilisateur afin qu'il puisse accéder ou non au fameux "tabCDC". Donc sur clic du bouton "btnAccesCDC" j'utilise un formulaire "frmMotDePasse" dans lequel j'invite à saisir indentifiant/pass. Sur saisie valide, j'appelle la procédure suivante : Code :
par oRibbon.InvalidateControl "tabCDC" qui n'est pas défini.J'entre pourtant bien dans la sub, le debug.print fonctionne. Je suppose devoir appeler la procedure par mais quoi à la place des xxx ? (Toutes les procédures sont dans le même module, mais je pense que cela n'a pas d'importance) Encore une fois, d'avance
|
||
|
|
00
|
|
|
#11 |
![]() ![]() Inscription : septembre 2003 Messages : 4 300 ![]() |
bjr,
je ne comprend pas trop l'articulation des procédures pourquoi une procédure ESSAI avec un paramètre IRibbonControl?
__________________
Assistant de création/modification de rubans Office Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL Blog Office Mon Site DVP |
|
|
00
|
|
|
#12 |
|
Membre régulier
![]() Inscription : novembre 2010 Messages : 101 ![]() |
Bonjour Arkham46 et merci de répondre encore,
L'idée c'est ça : 1 - Au chargement de l'appli, le ruban est affiché sans le tabCDC qui est en accès limité 2 - L'utilisateur clique sur le bouton "Responsable centre" ce qui ouvre un formulaire mot de passe. 3 - L'utilisateur saisi son login + mot de passe et si correct ... 4 - ... le tabCDC s'affiche sur le ruban C'est l'action 4 que j'essai de réaliser avec la sub ESSAI (c'est un nom provisoire) Donc j'exécute la sub ESSAI après mise à jour du mot de passe valide dans le formulaire. Grâce à ton aide j'arrive bien à afficher et à faire disparaître le tabCDC, mais cela n'a pas d'intérêt s'il n'y a pas de mot de passe. En lisant le tuto de C Warin création de rubans personnalisés sous MSACC2007, j'avais envisagé d'afficher une zone editbox dans mon ruban mais pas de masque de saisie "mot de passe" ... Je trouve plus sympa et surtout plus dans mes capacités de passer par un formulaire. Si quelqu'un pouvait encore en douter, je ne maîtrise pas tout, j'ai du mal avec les variables notamment celle que l'on doit mettre entre les parenthèses des sub ou fonctions. |
|
|
00
|
|
|
#13 |
![]() ![]() Inscription : septembre 2003 Messages : 4 300 ![]() |
pour le vba, tu as les bases expliquée ici :
http://heureuxoli.developpez.com/office/word/vba-all/ pas besoin de mettre un paramètre à la procédure ESSAI il ne sert à rien si ce n'est pas une procédure appelée directement par le ruban oRibbon est déclaré Public s'il est dans un module standard (pas attaché à un formulaire), il doit être accessible de partout
__________________
Assistant de création/modification de rubans Office Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL Blog Office Mon Site DVP |
|
|
00
|
|
|
#14 | ||||
|
Membre régulier
![]() Inscription : novembre 2010 Messages : 101 ![]() |
Bonjour,
Justement la procédure n'est pas appelée par le ruban. 1 - Au chargement de l'appli, le ruban est affiché sans le tabCDC qui est en accès limité 2 - L'utilisateur clique sur le bouton "Responsable centre" ce qui ouvre un formulaire mot de passe. 3 - L'utilisateur saisi son login + mot de passe et si correct le formulaire appele la procedure ESSAI 4 - ... le tabCDC s'affiche sur le ruban Je pense que oRibbon est bien déclaré en public et il est bien dans un module indépendant à part de tous formulaire. Code :
Code :
Donc la question est : comment agir sur le ruban, monté par défaut à l'ouverture de l'application, depuis un formulaire de mot de passe qui est ouvert en "fen modale" OUI et "fen independante" OUI ? |
||||
|
|
00
|
|
|
#15 | ||
![]() ![]() Inscription : septembre 2003 Messages : 4 300 ![]() |
bjr,
oRibbon et TabCDCisVisible étant Public dans un module standard, ils sont accessible de partout, y compris depuis le code d'un formulaire donc à priori pas besoin de la procéudre ESSAI le code : Code :
J'essaie de résumer le cheminement du code : 1 - le ruban se charge => onLoad demande de lancer la procédure RibbonOnLoad et lui donne en paramètre un objet qui est le ruban chargé (Ribbon As IRibbonUI) 2 - on met cet objet Ribbon (qui est dans un paramètre donc disparaît à la sortie de la procédure) dans oRibbon qui est Public et restera initialisé tant qu'on ne fait pas un arrêt du code (bouton "fin" dans une fenêtre d'erreur de code, ou le bouton carré de la barre d'outils= réinitialiser) si on arrête le code avec ses 2 denières méthodes, oRibbon est réinitialiser à vide et on doit relancer l'appli pour le retrouver 3 - l'onglet demande s'il doit être visible en appelant TabCDCGetVisible => invisible au démarrage 4 - on clique sur le bouton qui exécute "Sub_Admin03" => on ouvre un formulaire qui demande un mot de passe 5 - si le mot de passe est valide, on peut tout de suite définir TabCDCisVisible à True et demander le raffraîchissement de l'onglet avec oRibbon.InvalidateControl (ou le demander à la procédure ESSAI mais à ce moment il ne faut pas y mettre de paramètre, le ruban est dans oRibbon, pas besoin d'autre information) 6 - comme on demande le raffraîchissement de l'onglet, TabCDCGetVisible est à nouveau appelé et, TabCDCisVisible étant à True, l'onglet s'affiche Je ne vois pas ici pourquoi le formulaire empêcherait l'affichage de l'onglet.
__________________
Assistant de création/modification de rubans Office Utilisez en VBA les librairies graphiques GDI, GDI+ et openGL Blog Office Mon Site DVP |
||
|
|
10
|
|
|
#16 |
|
Membre régulier
![]() Inscription : novembre 2010 Messages : 101 ![]() |
YES, c'est nickel ça marche !
merci beaucoup Arkham46 ![]() Ayant du mal entre les "function, sub, private, public ..." mettre le code directement dans le formulaire ne m'avais pas effleuré l'esprit. Aprés explications cela semble pourtant logique. Merci encore pour ton intervention et ta patience - Super |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com