XL 2019 Remplacer l'affichage d'un msgbox par celui d'un userform

  • Initiateur de la discussion Initiateur de la discussion pat66
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

pat66

XLDnaute Impliqué
Bonjour le forum,

Mes connaissances étant très limitées, je fais appel à ce forum car je souhaiterai remplacer l'affichage d'un msgbox par celui d'un Userform, ou autre.
Le but étant d'avoir un affichage personnalisable (police, taille, couleur, etc..)

Pour plus de compréhension, je joints un exemple qui contient la macro du msgbox opérationnelle de Vgendron , ainsi que le type d'Userform souhaité

Pourriez vous m'aider à adapter la condition d'affichage ainsi que le résultat du Msgbox à celui de L'Userform

merci d'avance pour votre aide

bonne journée

Pat66
 

Pièces jointes

Dernière édition:
Histoire d'aller jusqu'au bout et pour faire le lien avec mon Post précédent, avec ces 2 modules génériques:
- Module_PositionUserFormSurObjet
- UserForm MsgBoxPersoBasic

Un petit fichier de démo...A voir plus loin.
 
Dernière édition:
re,

intéressant cette solution !!,
mais est ce qu'on peut remplacer le msgbox par un commentaire pour éviter la barre de titre ?

car j'aurai aussi besoin d'un petit commentaire de la taille d'une cellule qui s'affiche au survol d'une plage de cellules


merci
 
mais est ce qu'on peut remplacer le msgbox par un commentaire pour éviter la barre de titre ?
On peut faire 2 choses, soit supprimer le Caption du UserForm, soit utiliser un autre moyen pour afficher de l'information en utilisant par exemple une TextBox dynamiquement créée.
J'ai ça quelque part, il faut que je regarde. Le positionnement sera plus simple car Cellule et TextBox ont le même Parent: la feuille.
 
vbmodeless a rien avoir avec le fait d’être actif ou pas
Ouais...ben non !
Avec GetActiveWindow, si le UserForm est vbModeless on n'est pas sûr de récupérer son Handle puisque par définition on peut activer autre chose, dont la feuille. S'il est vbModal, la question ne se pose pas.
Mais bon, on va pas repartir dans ces discussions sans fin. J'aurais pas dû te lancer sur ce challenge.
VB:
Option Explicit

Declare PtrSafe Function GetActiveWindow Lib "user32" () As LongPtr

Sub a()
    UserForm1.Show vbModeless
    MsgBox "GetActiveWindow = " & GetActiveWindow
End Sub

Sub b()
    MsgBox "GetActiveWindow = " & GetActiveWindow
End Sub
Trace.gif
 
@pat66,

Voici un fichier qui contient le Module_ShowShape à inclure dans le Projet VBA qui lui-même contient la fonction ShowShape() qui permet d'afficher un texte à l'endroit voulu sur la feuille et avec des caractéristiques ajustables (voir paramètres de la fonction).

Voir la Module_Test pour la mise en œuvre avec quelques exemples.

Il te faut gérer:
- l'affichage et l'effacement (sauf si paramètre TemporisationSeconds défini) du message,
- la largeur / hauteur de la forme (paramètres Width / Height) selon la longueur / hauteur du texte,
- la position (sauf si centrée par défaut) de la forme (paramètres Left et Top).
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour