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

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

  • Message avec Calcul-Web.xlsm
    79.1 KB · Affichages: 17
Dernière édition:

sylvanu

XLDnaute Barbatruc
Supporter XLD
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

  • Message avec Calcul-Web.xlsm
    80.5 KB · Affichages: 12

patricktoulon

XLDnaute Barbatruc
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

  • Message avec Calcul-Web v pat .xlsm
    88.4 KB · Affichages: 7

pat66

XLDnaute Impliqué
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
 

Dudu2

XLDnaute Barbatruc
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:

pat66

XLDnaute Impliqué
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:

Discussions similaires

Statistiques des forums

Discussions
312 207
Messages
2 086 232
Membres
103 161
dernier inscrit
Rogombe bryan