XL 2019 Remplacer INPUTBOX par un formulaire

escouger

XLDnaute Occasionnel
Bonjour,
Ne pouvant pas gérer la taille de la boîte de dialogue d'un message émis par MSGBOX ou INPUTBOX,
j'aimerais remplacer cette boîte par un formulaire affiché depuis le VBA de l'application puis effacé de l'affichage par ce même VBA.
Ce formulaire ne contiendrait que du texte et deux boutons pour déclencher un traitement selon le bouton actionné.
N'ayant jamais fait de formulaire, je ne sais pas si cela est possible.
Si çà l'est pourriez vous me donner quelques indications sur la manière de procéder?
Merci d'avance de votre aide.
 

escouger

XLDnaute Occasionnel
Bonjour,
J'ai un peu avancé mais suis encore bloqué sur une difficulté de présentation.
Je récapitule:
Situation actuelle, qui marche mais ne me convient pas.
VBA déclenche un InputBox qui affiche une long message, sur plusieurs lignes de longueurs différentes. 2 boutons sont également affichés: OK et Annuler.
Si la réponse saisie est la lettre Q (pour quitter) une séquence d'instruction est exécutée, puis le tableau quitté normalement.
Sinon, le VBA se poursuit séquentiellement.
Ce qui m'ennuie est le peu de convivialité de ceci car on ne peut pas maîtriser la taille de la boîte de dialogue affichée par InputBox , Les boutons n'ont pas de réelle utilité, et on ne peut pas gérer dans le texte de formats (Gras, souligné, couleurs...)

Ce que je voudrais réaliser:
Remplacer InputBox par un formulaire contenant une zone de texte sur plusieurs lignes (avec gestion du changement de ligne), avec des mots en Gras et en rouge, soulignés et 2 boutons "QUITTER" et "POURSUIVRE".
Lors de l'initialisation du formulaire la variable XXX serait chargée à 0.
Si le bouton Quitter est activé xxx = 1. Si bouton Poursuivre est activé XXX=2
A la place du InputBox, j'ouvre le formulaire, et l'initialise.
Après qu'un des 2 boutons (voir aucun si le terminaliste sort direct du formulaire) ait été active, je ferme le formulaire et teste xxx.
Si xxx=1 je déclenche ma procédure de fermeture, sinon je continue mon programme.
Je ne suis pas loin du but, mais n'arrive pas à ce que mon texte (zone de Texte) soit éclaté sur plusieurs lignes avec gestion des formats type (Gras, souligné, couleurs...)
J'ai essayé Avec les contrôles "Zone de Texte" et "Multipage" mais n'ai pas obtenu le résultat escompté.
Pourriez-vous me mettre sur la voie ?
C'est mon premier formulaire, et donc mes questions pourront vus paraître un peu naïves. Je m'en excuse par avance.
Merci d'avance de votre aide
 

escouger

XLDnaute Occasionnel
Merci, c'est un bel exemple de boite de dialogue, mais qui malheureusement ne correspond pas à ma demande.
Ce que je cherche, c'est une boîte de dialogue au sein d'un formulaire dans laquelle je pourrais placer plusieurs lignes de texte et avec des formats sur certains mots.
 

escouger

XLDnaute Occasionnel
Bonjour,
Je crois avoir trouvé la solution de mon souci.
En fait j'ai simplement déclaré une zone de type "ListBox" dans le formulaire et l'ai remplie
ligne à ligne avec un Add.Item.
2 boutons me permettent ensuite de choisir de quitter ou de poursuivre ma saisie sur ma feuille Excel. Chacun de ces boutons positionne une valeur (1 ou 2) dans une cellule que je teste dans le VBA après avoir clos le formulaire.
Seul bémol restant, je n'arrive pas produire des lignes de texte avec des mots en noirs d'autres en rouge au sein d'une même ligne.
Exemple : listBox1.additem "Si vous avez choisi QUITTER, les données seront perdues"
J'aimerais que le mot QUITTER soit de couleur rouge et en gras et que les mots
"les données seront perdues" soient soulignés.
Merci de votre aide
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 917
Membres
101 839
dernier inscrit
laurentEstrées