J'ai tourné le Pb dans tous les sens, la seule solution trouvée est de passer les champs en paramètres dans la fonction externe
Exemple :
Si je saisis la
Longueur et la
Largeur dans
MAIN
Si la fonction
Calculer_Surface est dans un module de code externe nommé
ACTIONS
Je peux donner à Calculer_surface les plein pouvoirs sur les champs de saisie dans MAIN (et pas seulement sur la valeur saisie) si je les passe en paramètres en temps qu'objet de cette façon :
Surface = ACTIONS.Calculer_Surface (Edit_Longueur, Edit_Largeur)
Avec Calculer_Surface qui reçoit dans ACTIONS les paramètres de cette façon
Sub Calculer_Surface (Edit_longueur As EditText, Edit_Largeur As EditText)
Je peux donc dans ma fonction de calcul, lire les valeur saisies, mais surtout redonner le focus aux champs que je veux dans MAIN pour pointer la saisie erronée
LA QUESTION DEVIENT DONC :
1- Peut on dans un module de code externe déclarer le formulaire principal MAIN, afin de pouvoir accéder facilement à tous ses champs
2- Peut on dans une fonction Sub (calculer par exemple) passer l'Objet "MAIN" en globalité, pour éviter de passer l'un après l'autre tous ses champs, et si c'est possible comment le récupérer le détail des champs dans le Sub appelé
Si j'appelle la fonction
Surface = ACTIONS.Calculer_surface(Me)
Comment j'écris dans ACTIONS mon Sub
Sub Calculer_Surface ( MyForm As ?)
Le plus simple c'est de laisser la Sub dans MAIN, mais c'est bien trop simple pour celui qui aime les défis...