Exécution après le chargement d'un formulaire

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Dr. NOOo
Membre hOOnoraire
Membre hOOnoraire
Messages : 129
Inscription : 08 sept. 2006 14:03

Exécution après le chargement d'un formulaire

Message par Dr. NOOo »

Bonjour,

J'ai besoin d'exécuter une macro au chargement d'un formulaire. Il s'agit de contrôler qu'un montant ne dépasse pas un certain seuil.

Si j'attache cette macro dans l'évènement "Ouverture du document", elle s'exécute avant que les informations de la base ne soient chargées dans les champs. Du coup, elle ne peut rien contrôler.

Toute suggestion est la bienvenue

Merci
OOo 3.1.0 Linux Ubuntu 9.10

Je n'ai pas besoin de drogue car mes rêves me font déjà assez peur.
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 17219
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Message par jeanmimi »

bonjour,

Une suggestion ? Assigner la macro à un autre évènement que l'ouverture du formulaire.
LibreOffice : Version : 25.8.4 (x64)(23 février 2026)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Dr. NOOo
Membre hOOnoraire
Membre hOOnoraire
Messages : 129
Inscription : 08 sept. 2006 14:03

Message par Dr. NOOo »

jeanmimi a écrit :Une suggestion ? Assigner la macro à un autre évènement que l'ouverture du formulaire.
Merci de ta réponse, mais j'ai testé sur pas mal d'évènement du formulaire et j'ai toujours ce problème du chargement des infos après le lancement de la macro.
OOo 3.1.0 Linux Ubuntu 9.10

Je n'ai pas besoin de drogue car mes rêves me font déjà assez peur.
Avatar de l’utilisateur
jeanmimi
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 17219
Inscription : 03 mars 2006 16:02
Localisation : Venise verte

Message par jeanmimi »

Je n'ai sans doute pas saisi ce que tu veux faire.

Les données dans les champs, tu les saisis bien avec ton formulaire déjà ouvert ?
Et s'il y a un calcul, à quel moment se fait-il ?
LibreOffice : Version : 25.8.4 (x64)(23 février 2026)
Adoptium JRE ou Oracle JRE (x64), Windows 10, Thunderbird, Firefox
Dr. NOOo
Membre hOOnoraire
Membre hOOnoraire
Messages : 129
Inscription : 08 sept. 2006 14:03

Message par Dr. NOOo »

jeanmimi a écrit :Je n'ai sans doute pas saisi ce que tu veux faire.

Les données dans les champs, tu les saisis bien avec ton formulaire déjà ouvert ?
Et s'il y a un calcul, à quel moment se fait-il ?
C'est un formulaire qui parcourt une table. Lorsque je clique sur les flèches de parcours en bas, je voudrais qu'il y a une macro qui contrôle que le montant ne dépasse pas 150.

Image
OOo 3.1.0 Linux Ubuntu 9.10

Je n'ai pas besoin de drogue car mes rêves me font déjà assez peur.
Pierre-Yves Samyn
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 11276
Inscription : 02 mai 2006 08:42

Message par Pierre-Yves Samyn »

Bonjour

Ton problème ressemble à un autre de la section Base de données.

Si tu veux contrôler l'événement déclenché par les flèches de navigation, il me semble qu'il s'agit des événements avant / après changement d'enregistrement.

Effectivement, une difficulté rencontrée est que cet événement est déclenché à l'ouverture du formulaire (avant même l'événement Chargement) et donc provoque une erreur si on tente d'accéder aux contrôles.

Dans le fil : http://user.services.openoffice.org/fr/ ... 3488#13488
je propose une solution reposant sur le test de la propriété IsLoaded du formulaire : on ne fait le traitement que si le formulaire est effectivement chargé.

Par ailleurs, s'agissant d'un programme contrôlant le changement d'enregistrement (et donc susceptible d'annuler l'événement) il faut savoir :
- que le code associé est déclenché 2 fois.
- que si on souhaite pouvoir annuler l'événement (montant supérieur à 150 dans ton cas), ce n'est pas une procédure mais une fonction qu'il faut associer. Pour annuler l'événement il suffit que la fonction retourne "faux" (cf. toujours le même exemple ci-dessus).
Dr. NOOo
Membre hOOnoraire
Membre hOOnoraire
Messages : 129
Inscription : 08 sept. 2006 14:03

Message par Dr. NOOo »

Pierre-Yves Samyn a écrit :Ton problème ressemble à un autre de la section Base de données.
Ah ah ! C'est pour cela que je ne l'avais pas trouvé. On planque des macros dans les autres forums. :D

Merci PYS, je vais tester ton code et tenter de l'adapter.
OOo 3.1.0 Linux Ubuntu 9.10

Je n'ai pas besoin de drogue car mes rêves me font déjà assez peur.
Pierre-Yves Samyn
Grand Maître de l'OOffice
Grand Maître de l'OOffice
Messages : 11276
Inscription : 02 mai 2006 08:42

Message par Pierre-Yves Samyn »

Dr. NOOo a écrit :Ah ah ! C'est pour cela que je ne l'avais pas trouvé. On planque des macros dans les autres forums. :D
Blague à part c'est une question que je continue de me poser régulièrement. Pour Base en effet, difficile de réaliser une fonction sans passer par un minimum de macro semble-t-il.

Pour les autres modules, c'est plus délicat : quand quelqu'un demande une fonctionnalité qui peut être résolue avec une mémorisation voir un code minimum, donner la solution dans le même fil ne me semble pas si mal (pardon grands modérateurs... :oops: ) car il n'est pas dit qu'un autre utilisateur penserait à interroger la section macro ?