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:
Bonjour Pat,
Un essai en PJ avec userform.
Votre macro devient simplement :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("G4:G13")) Is Nothing Then
    If Target <> 1 Then Exit Sub
    Message = "Grâce à cette offre," & Chr(13) & Chr(10) & Chr(10) & "vous économisez " & Round(Range("J4") / Target.Offset(0, -1).Value, 2) & " mois de reste à charge" & Chr(13) & Chr(10) & Chr(10) & "Toutes nos félicitations"
    UserForm1.Texte = Message
    UserForm1.Show
End If
End Sub
Et j'ai créé un userform pour remonter les informations du message.
 

Pièces jointes

bonjour
un hersât de mon msgbox perso j'ai mis juste le necessaire adapté a ta demande
les option couleur, texte sont pilotable

les types possibles
vbYesNo:
vbOKOnly
vbOKCancel
vbAbortRetryIgnore
vbYesNoCancel
vbRetryCancel

il va de soi que le message peut toujours fonctionner en responsif

demo.gif
 

Pièces jointes

Bonjour Messieurs,,
un grand merci car toutes vos solutions correspondent à mes attentes,

Un dernière requête si je peux me permettre, peut on faire en sorte que le haut de l'userform s'affiche en étant aligné avec cellule G que l'on vient de saisir ?
Exemple :
je saisi 1 en G6, l'angle supérieur gauche de l'userform s'aligne s'aligne sur G6
je saisi 1 en G8, l'angle supérieur gauche de l'userform s'aligne s'aligne sur G8
etc....

merci d'avance pour votre aide
 
Pour info, positionner un UserForm sur un objet de feuille (cellule, Shape) n'est pas totalement trivial.
@patricktoulon en sait quelque chose qui a travaillé sur la question des marges avec l'utilisation d'une API du Desktop Windows Manager.

J'en ai tiré cette fonction qui gère ce genre de positionnement, à utiliser éventuellement en l'appelant:
VB:
 Call PositionUserFormSurObjetFeuille(MonUserFormTartempion, ActiveSheet.Range("G6"))
Et bien sûr en incluant le Module_PositionUserFormSurObjet dans le Projet VBA.

Fichier... voir plus loin.
 
Dernière édition:
Re,

Fanfan38, c'est presque çà, mais il s'aligne à droite sur la colonne H et non sur la colonne G, est ce possible de l'aligner sur la colonne G ou même la colonne F, à la ligne que l'on vient de saisir le 1, voir mon post #6, merci
 
Dernière édition:
- 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