Changement d'affichage sur clic

Résolu/Fermé
Ollam Messages postés 77 Date d'inscription jeudi 18 avril 2013 Statut Membre Dernière intervention 15 août 2022 - 1 juil. 2020 à 18:01
RV71 Messages postés 531 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 14 mai 2024 - 2 juil. 2020 à 16:35
Bonjour,

Une nouvelle colle pour les passionnés de prise de tête.

Bon, le titre n'est pas très clair, mais je vais développer ici:

J'ai beaucoup de mal avec les graphiques parce que je me retrouve avec des espaces immenses et inutiles de chaque coté (dans un camembert par exemple).
Donc, j'ai changé ma stratégie de présentation en faisant un formulaire principal avec des vignettes cliquables pour afficher en grand le graphique au centre.
Si ce n'est pas clair, voir un imprime-écran ci dessous.

le graphique en grand, au centre est dans un sous-formulaire.
Je vais donc faire autant de sous-formulaire que de graphique

Mon problème est le suivant:
Quand je clique sur une vignette, alors devrait s'afficher le graphique correspondant, mais si je clique ensuite sur une autre vignette (n'importe laquelle), le sous-formulaire précédent devrait à nouveau être "caché" et le nouveau "visible".

Afficher et cacher un élément, je sais maintenant faire. mon problème est de cacher le précédent, surtout quand on ne sait pas quel est ce précédent, en effet, je ne suis pas obligé de cliquer sur les vignettes dans l'ordre.

C'est la suite de mes autres questions pour lesquelles j'ai reçu une super aide, mais à chaque fois un détail fait que je ne peut appliquer ce que j'ai appris.
Je m'en remet donc à vous une nouvelle fois.

Merci d'avance

A voir également:

8 réponses

RV71 Messages postés 531 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 14 mai 2024 31
Modifié le 2 juil. 2020 à 16:39
"Me" c'est "moi".
Pour accéder à un contrôle (quel qu’il soit) du formulaire actif, on fait me.moncontrole, sinon Access ne peut pas savoir à quel endroit se situe le fameux controle.
Au lieu d'écrire "forms!tonform!toncontrole" tu écris me.toncontrole quand tu écris du code dans ce fameux formulaire"tonform" ; c'est + rapide.
C'est vrai qu'Access pourrait chercher automatiquement le controle dans l'objet comportant le code, mais non, donc faut faire avec :-)
1
RV71 Messages postés 531 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 14 mai 2024 31
1 juil. 2020 à 18:16
Re,

déjà, merci d'avoir créé un sujet pour chaque question, c'est pas habituel :-)

A tout hasard, tu peux essayer avec l'évènement lost focus.

Vois ici :
https://docs.microsoft.com/fr-fr/office/vba/api/access.form.lostfocus

A+
0
RV71 Messages postés 531 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 14 mai 2024 31
1 juil. 2020 à 18:59
Ou pour moins te casser la tête, mets ton formulaire en mode fenetre modale, tu seras obligé de le fermer avant de pouvoir faire quoique ce soit d'autre...

A+
0
RV71 Messages postés 531 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 14 mai 2024 31 > RV71 Messages postés 531 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 14 mai 2024
1 juil. 2020 à 21:08
Ou encore à l'ouverture de chaque sous-form (si tu n'en as pas 50), tester si les autres sont ouverts, et le cas échéant, les fermer


If CurrentProject.AllForms("sousform1").IsLoaded Then
DoCmd.Close acForm, "sousform1"
...
end if


A toi de voir ce qui te convient le +.

A+
0
Ollam Messages postés 77 Date d'inscription jeudi 18 avril 2013 Statut Membre Dernière intervention 15 août 2022
1 juil. 2020 à 21:58
Bonsoir RV71,

Je pense que je vais essayer la dernière proposition.
En effet, un formulaire en modale, ou même normal est auto-centré (ou pas), mais je ne connais pas de solution pour lui définir un emplacement fixe, je ne suis même pas sur que cela soit possible !!!!

J'aime que mes pages soient bien présentées et dans ce formulaire, le graphique n'est pas centré.
Donc la dernière solution me semble bien surtout que je n'ai que 4 ou 5 graphiques.

Pourrais-tu m'envoyer un modèle avec ta dernière solution, c'est plus simple à comprendre pour moi ?
sinon je vais passer mon temps à te demander ou je mets ça et puis ça, bref je vais te prendre la tête !!!!!

Merci bien
0
RV71 Messages postés 531 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 14 mai 2024 31
Modifié le 1 juil. 2020 à 22:23
Pour le positionnement :
https://claudeleloup.developpez.com/tutoriels/access/positionner-formulaire/#:~:text=%2D%20Droite%20la%20distance%20entre%20le,de%20la%20fen%C3%AAtre%20du%20formulaire.

Pour le reste, tu mets ce code sur chaque bouton qui ouvre tes graphiques
Par exemple sur l'évènement click du bouton qui ouvre le form Graph1, tu testes si Graph2, Graph3, Graph4 est ouvert et si c'est le cas tu le fermes et ouvres Graph1
Private Sub BoutonGraph1_Click()

If CurrentProject.AllForms("Graph2").IsLoaded Then 'le form Graph2 est chargé
DoCmd.Close acForm, "Graph2" 'on le ferme
elseif CurrentProject.AllForms("Graph3").IsLoaded Then 'le form Graph3 est chargé
DoCmd.Close acForm, "Graph3" 'on le ferme
...
end if

DoCmd.OpenForm "Graph1" 'on ouvre Graph1

end sub


Si tu n'arrives pas à tes fins, je ferai un exemple demain, là je suis KO.

A 2m1
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
RV71 Messages postés 531 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 14 mai 2024 31
Modifié le 2 juil. 2020 à 13:41
En fait, en relisant à tête reposée, je ne sais pas si tu ne veux pas ouvrir / fermer les forms ou les afficher / cacher ?
Du coup je t'ai mis dans la base exemple les 2 méthodes.

https://www.cjoint.com/c/JGclNFKfrRU

A+
0
Ollam Messages postés 77 Date d'inscription jeudi 18 avril 2013 Statut Membre Dernière intervention 15 août 2022
2 juil. 2020 à 15:54
Bonjour,

C'est surprenant, je t'ai écris cette nuit (vers 2 ou 3 heures) en réponse de ton précédent post, mais je ne ne vois pas.
C'était juste pour te dire que le lien sur le positionnement des formulaires et génial et me sera d'une grande aide !!!!!
Bien sur je revenais également sur le sujet en cour, mais je ne vais pas me répéter car avec ton dernier message tu à répondu à mes attentes.

En effet, C'est la solution "En affichant" qui correspond à mon besoin.
Je vais décortiquer ton travail pour bien le comprendre.

Une fois de plus tu m'a grandement aidé.
J'espère qu'un jour je serais capable d'en faire autant avec des gens en quête de réponse !!!!

Encore merci
0
RV71 Messages postés 531 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 14 mai 2024 31
Modifié le 2 juil. 2020 à 16:01
Re,

je n'ai eu aucune notification de réponse de ta part, peut-être un souci lors de la validation de cette dernière, mais ce n'est pas grave...

Le code sera vite décortiqué je pense, il n'y a rien de compliqué.

Si c'est résolu, tant mieux, et je te dis peut-être à la prochaine :-)

A+
0
Ollam Messages postés 77 Date d'inscription jeudi 18 avril 2013 Statut Membre Dernière intervention 15 août 2022
2 juil. 2020 à 16:31
Oui, c'est vrai que le code est simple.
J'avais essayé quelque chose comme cela, mais ça ne fonctionnait pas.
En fait, je n'écrivais pas "Me." devant le nom du SF.

Cela fait plusieurs fois que je vois passer ce "Me.", mais je n'ai pas encore compris dans qu'elle circonstance l'utiliser.

Encore merci
0