Exécuter un ensemble de boutons

Fermé
Phil - 16 déc. 2021 à 09:57
yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 - 16 déc. 2021 à 23:28
Un unique bouton de commande pour exécuter un ensemble de boutons (Chronos)

Bonjour,
Dans un formulaire [TableauAffichageChronometre], j’ai un bouton « Départ général » qui aurait l’option de commander une procédure pour lancer des chronos, cataloguer par un contrôle onglet nommé [Acteurs] et de ses 12 pages : [Acteur_1], Acteur_2, …., Acteur_12, (ou se situe ces sous-formulaires « ouverts » [Entrainement_ActN°_01], à …_12.).

(À noter que chaque de ses sous-formulaires, on également une procédure de départ par bouton Chrono, pour conserver l’option de départ différé et individuel).

En somme, en appuyant sur le bouton « Départ général », je souhaiterais que toutes les procédures par bouton "Start" de ces sous-formulaires (ouverts) s’exécutent. J’ai testé CallByName(), Eval(), Call().

J’ai bien entendu aussi fait des recherches sur les différentes possibilités et aides que propose ce forum et plus encore. Mais je me bute sur la mise en application de ces propositions et de chemin (Erreur d'exécution '2450').

Merci d’avance de porter attention à mon problème, cordialement.

2 réponses

yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 Ambassadeur 1 557
16 déc. 2021 à 14:22
bonjour,
tu ne décris pas précisément ce que tu as essayé, et donne très peux d'élements factuels
Les procédures à appeler sont bien des sub() VBA?
Où et comment sont-elles déclarées?

Si ce sont des sub publiques déclarées dans une forme, je pense que tu peux les appeller ainsi:
lenomdelaforme.lenomdelasub()
0
Bonjour,
Merci de votre aide et désolé de mon manque de précisions, mon niveau en VBA Access ce ressent surement dans mon explication d’autodidacte.
En effet, il s’agit bien des Sub() VBA et à partir d’une procédure Evènementiel, intitulé « Form_TableauAffichageChronometre » dans le registre des Modules de classe.
Les procédures que je dois aller chercher, sont intitulés « Form_Entrainement_ActN°_01 », Form_Entrainement_ActN°_02, etc. ou l’on trouve les procédures :
« Private Sub cmd_Start01_Click() », Private Sub cmd_Start02_Click(), etc.

J’ai bien testé votre proposition comme ci-dessous, mais toujours avec des erreurs.
Private Sub Départ_Général_Click()
'lenomdelaforme.lenomdelasub()
Form_Entrainement_ActN°_01.cmd_Start
End Sub

Aussi: Forms![TableauAffichageChronometre]![Form_Entrainement_ActN°_01].cmd_Start_Click

Une autre piste peut-être, merci.
0
yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 1 557 > Phil
16 déc. 2021 à 17:43
Ton niveau en VBA t'empêche-t-il de donner, pour chaque essai, quelle erreur cela donne?

J'ai écrit "si ce sont des sub publiques déclarées dans une forme", et tu nous montres des sub privées, donc qui ne sont pas accessibles de l'extérieur.

Ton vocabulaire est extrêmement approximatif, tu décris ce que tu penses voir, sans lien avec la réalité.
Les procédures sont dans des modules ou dans des formes, jamais dans une autre procédure, ni "à partir d'une autre procédure".

Tu n'as pas précisé quelle procédure tu veux appeler.
S'il s'agit de cmd_Start01_Click(), je pense que c'est une mauvaise idée.
Il vaut mieux, et c'est peut-être obligatoire, qu'elle reste privée.

Au lieu d'appeller cmd_Start01_Click(), tu dois créer une procédure publique qui sera appelée aussi bien par cmd_Start01_Click() que par Départ_Général_Click().
0
Pour l’erreur : Erreur d’exécution ‘24465’ …. Ne trouve pas le champs « Form_Entrainement_ActN°_01 » auquel…, voir sans retour...

J’avais bien mis un doute sur ma réponse de procédure privé ou public et j’ai bien essayé d’insérer cette commande dans les modules publics, mais sans succès…
Je m’y prends mal c’est sûr, sinon je ne chercherais pas à essayer de comprendre.

Alors comment créer cette procédure publique pour appeler ces cmd_Start01_Click() ,cmd_Start02_Click(),… depuis un bouton dans mon formulaire principal ?
Merci
0
yg_be Messages postés 23405 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 20 décembre 2024 1 557
16 déc. 2021 à 23:28
Pourquoi ne partages-tu pas le code de cmd_Start01_Click()? Ce serait plus concret.

J'ai suggéré une procédure publique qui sera appelée aussi bien par cmd_Start01_Click() que par Départ_Général_Click().

Donc, en clair, tu crées une nouvelle procédure publique dans laquelle tu fais tout ce qui était fait dans cmd_Start01_Click().
Ensuite, tu vides tout ce que faisait cmd_Start01_Click(), et tu y ajoutes un appel à la nouvelle procédure publique créée.
Ensuite, et ajoutes dans Départ_Général_Click() un appel à cette nouvelle procédure publique.
0