Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
Icône de la ressource

Gestion des messages comme un MsgBox

Don pépé

XLDnaute Occasionnel
Don pépé a soumis une nouvelle ressource:

Ce lien n'existe plus - Permet de faire comme un MsgBox avec avec des couleurs ;)


Ce lien n'existe plus
 

escouger

XLDnaute Occasionnel
Bonsoir Don Pépé,

Votre sujet m'a interessé et j'ai voulu le tester.

Malheureusement j'ai une erreur de compilation sur la dernière ligne de ce pavé:
(Dim oControl As MSForms.Control, oForm)


Public Function Msg(ByVal Message As String, _
Optional ByVal Titre As String = "Petit message", _
Optional ByVal Align As TextAlign = vLeft, _
Optional ByVal FontStyle As StyleFont = vNormal, _
Optional ByVal FontName = "Tahoma", _
Optional ByVal ColorFont As FontColor = TextColorBlack, _
Optional ByVal Icon As StyleIcon = vnoIcon)
Dim Counter As Integer, LineCounter As Long
Dim oControl As MSForms.Control, oForm

Je suis en excel 2019 et je n'ai pas trouvé l'équivalence de l'option "Faites confiance....." dans les options. Peut-être est-ce la raison de ce souci de compilation.

Pouvez-vous me donner une piste ?

Merci d'avance
 

escouger

XLDnaute Occasionnel
Bonsoir,
Toutes les options d'autorisation des macros sont cochées ainsi que les fichiers et emplacements approuvés.

MSForms.Control n'est pas un type autorisé.... me dit le compilateur.

En effet si je rajoute une ligne dim xxx as ..puis regarde la liste des valeurs proposées MSForms.Control n'y figure pas.

Faut-il peut-être ajouter une "référence" dans la liste des références disponibles ?
Si oui laquelle, je n'en ai pas répéré une qui contiendrait le mot "FORM".

Bref, je nage....et pas encore assez aguerri avec ce superbe outil qu'est Excel et VBA!
Voyez ci-joint mon fichier de test. (Excel 2019 64 bits, windows 10 à jour, PC 64 bits)
Merci
 

Pièces jointes

  • MSGTEST.xlsm
    22.9 KB · Affichages: 25

Dranreb

XLDnaute Barbatruc
Bonsoir.
Le plus simple pour avoir la bibliothèque MSForms c'est d'insérer un nouvel UserForm, quitte à le supprimer ensuite si on n'en a pas besoin. La référence à "Microsoft Forms 2.0 Object Library" s'en trouve en effet cochée alors automatiquement.
 

escouger

XLDnaute Occasionnel
Merci, j'ai fait cela et l'erreur de compilation a en effet disparue.
J'ai intégré "msg" dans un VBA existant et cela fonctionne.

J'ai maintenant un second souci avec l'erreur 50289 stipulant "impossible d'effectuer cette opération tant que le projet est protégé".
Le projet dans lequel j'ai intégré "msg" est effectivement et volontairement protégé.
Ce tableau qui existe depuis plusieurs années, est utilisé par quelques personnes d'une même association, et je l'ai "verrouillé" avec un mot de passe de manière à ce que le VBA ne puisse être modifié.
Avant "msg" il était verrouillé et fonctionnait bien.
Maintenant, si je déverrouille tout fonctionne, si je verrouille j'ai l' erreur 50289.

Je pense donc que le code ajouté et correspondant à "msg" est probablement la cause de ce 50289.

Merci encore d'un petit coup de pouce pour dépasser cet ennui.
 

Dranreb

XLDnaute Barbatruc
De toute façon si je voulais un système de messages personnalisés, j'utiliserai un UserForm défini dans la fenêtre de conception, à la limite vide mais je ne crois pas, appelé UFmMsg, et non pas fabriqué à la volée dans le projet VBA. Ce serait bien plus simple. J'en ai d'ailleurs un, assez peu utilisé dans un petit nombre de macros de manip diverses, mais il ne vous conviendrait probablement pas.
 

patricktoulon

XLDnaute Barbatruc
bonjour a tous
@Dranreb : tout a fait d'accords avec toi
d'autant plus que la méthode de @Don pépé exige "l’accès approuvé au modele du projet...."
il est vrai que le fait qu’après le click sur le bouton du message rien ne reste est séduisant mais c'est fastidieux
j'imagine le code avec toute les possibilité msgboxStyle


le mien je l'ai un peu remis a jour avec la méthode de mon calendrier(classe intra et bouton dynamique)

 

escouger

XLDnaute Occasionnel
Bonjour,
Je partage cette dernière remarque.
Je fait que "l’accès approuvé au modele du projet...." est très ennuyeux, en cas de diffusion du tableau à plusieurs personnes, car le projet n'est plus protégeable.
La proposition de Patrickcoulon est une alternative que je vais tester et qui pourrait répondre à ma problématique ponctuelle.

Merci à tous
 

escouger

XLDnaute Occasionnel
Bonjour,
Je trouve la solution de Patrickcoulon excellente.
Pour mieux comprendre son fonctionnement j'ai une question liée à la gestion des codes couleur. J'ai bien vu la relation entre les codifications RVB et hexa.
Néanmoins dans l'exemple du test 1

X = MsgBoxX.ValueX("bonjour les loulou z", vbYesNo, "test message", "arial black", True, True, True, xlCenter, vbYellow, 33, 3, vbCritical)

j'aimerai comprendre comment sont traduits les 2 paramètres 3 et 33 respectivement en codes identifiants correspondants au Bleu et Rouge.

Merci d'avance de votre aide à ma compréhension
 

patricktoulon

XLDnaute Barbatruc
bonjour
c'est simple
si c'est plus petit que 55 don
3=thisworkbook.colors(3)
33=thisworkbook.colors(33)

en gros c'est les mêmes que colorindex
tu n'a qu'a lire le code dans le userform
mais pose tes questions sur ma ressource pour éviter de polluer celle ci
 

escouger

XLDnaute Occasionnel
Bonjour,

Je rencontre, de manière aléatoire(!), un problème avec msgboxX, sans pouvoir jamais l'analyser ou même le reproduire.
Il arrive que , après l'affichage du message et du bouton, puis du cadre ou se placera l'icône d'alerte que le programme se fige. Impossible de continuer sauf à arrêter la tâche brutalement.
Est-ce qu'un mouvement intempestif de la souris, ou un clic involontaire pourrait être la cause de cela ?
Si quelqu'un peut me donner quelques pistes, je suis intéressé.
Merci
 

patricktoulon

XLDnaute Barbatruc
bonjour
pose ta question dans la discussion du msgboxX
j'aurais jamais du donner le lien ici c'est de ma faute
si tu pose ta question dans la discussion de cette ressource j'y répondrais
 

escouger

XLDnaute Occasionnel
J'espère être maintenant au bon endroit pour poser ma question.
Merci de m'aider à trouver le bon lien si ce n'est pas le cas.

Je rencontre, de manière aléatoire(!), un problème avec msgboxX, sans pouvoir jamais l'analyser ou même le reproduire.
Il arrive que , après l'affichage du message et du bouton, puis du cadre ou se placera l'icône d'alerte que le programme se fige. Impossible de continuer sauf à arrêter la tâche brutalement. (SUB ICONIC qui appelle des exécutables)
Est-ce qu'un mouvement intempestif de la souris, ou un clic involontaire pourrait être la cause de cela ? Est-ce que la version Excel 2019 sous W10 est incompatible?
Si quelqu'un peut me donner quelques pistes, je suis intéressé.
Merci
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…