Alternative à MsgBox()
Bonjour à tous,
Voici une version revisitée de la fonction Dialogue.
Dans cette nouvelle version, les messages ne sont plus intégrés à la fonction Dialogue, mais stockés dans un formulaire dédié. La gestion des messages (création, modification, suppression) se fait via une application spécifique qui rend le travail de programmation beaucoup plus simple et surtout plus convivial.
Une fois mis au point, le jeu de messages sera directement exporté dans l’application destination. La fonction Dialogue (nouvelle version) se chargera d’extraire les données du message (depuis le formulaire dédié) et l’affichera selon les paramètres définis (via le formulaire Message).
Par rapport à l'ancienne version, la taille du projet se trouve fortement diminuée.
Contexte d’utilisation : (Rappels et nouveautés)
La fonction Dialogue() est une alternative à MsgBox(). Elle offre plus de possibilités en matière d’affichage et de paramétrage des messages. Comme par exemple afficher des messages "Furtifs", que s'affichent et disparaissent au bout d'un certain temps, du texte long sur une seule ligne, de la couleur dans le message, des caractères de tailles différentes, des fenêtres plus grandes, des icônes personnalisées, etc.
Elle permet au développeur de déterminer (via l'application de gestion) ses propres choix pour l'affichage des messages.
La fonction se charge, à partir des données du message (et de ses paramètres), de préparer le formulaire "Message" (hauteur/largeur, etc.), de placer le texte (les labels), de faire apparaître l'image associée et de positionner les boutons. Après validation par l'utilisateur final (si validation), elle retourne une valeur qui sera utilisée pour la suite du traitement.
Exemples d'appels de la fonction :
Après avoir positionnés (le cas échéant) les paramètres additionnels dans la variable tableau Mtxt()
M1 = Dialogue (N° Message)
If Dialogue (N° message) = 1 Then …
Select case Dialogue (N° message) …
ou tout simplement Dialogue (N° de message) si la réponse n'est pas utile (message furtif par exemple)
Etc.
M1 est une variable publique ; bien que réservée à la fonction, elle pourra servir à recevoir la réponse.
N° message est le numéro du message à afficher. La fonction extraira les données directement depuis le formulaire "Données_Msg".
Dans cette nouvelle version, le type de validation disparait ; il est déterminé par la fonction (selon le nombre de boutons positionnés).
Valeurs retournées par la fonction :
- 0 pour un message "Furtif" (sans bouton), utilisation de la touche Echap ou fermeture du formulaire par la croix,
- 1, 2 ou 3 selon le N° du bouton sélectionné,
- 99 si le message offre une possibilité d’aide et que l’utilisateur clique sur l’image (point d’interrogation) ou sur le label "Aide" présent dans ce cas.
Aperçu du classeur de gestion :
Fenêtre principale
Fenêtre de gestion des messages
Avec cette nouvelle version, la programmation des messages devient encore plus simple et l'autonomie du module Dialogue permet une implantation plus aisée dans les nouveaux projets.
Les commentaires, présents dans le code de l'application de gestion, permettent de comprendre les mécanismes de traitement. Vous pouvez adapter l'application à vos besoins en y ajoutant ou en modifiant des éléments (procédures, objets, etc.).
Bien que le programme ait été testé maintes fois, il peut s'y trouver encore quelques coquilles résiduelles (erreurs non traitées par exemple). Un retour de votre part sera le bienvenu.
Vous trouverez en pièces jointes :
- L'application de gestion des messages : Gestion des Messages.xlsm
- Un jeu d'exemples de messages : Datas Msg Exemples de messages (2023-07-25_10-26).txt
- Le manuel complet : Alternative à MsgBox (Manuel).pdf
Bonne utilisation
Partager