Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Afficher une message Msgbox choisi dans une liste

  • Initiateur de la discussion Initiateur de la discussion eric57
  • 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 !

eric57

XLDnaute Occasionnel
Bonjour le forum

J'affiche a la in d'une procédure un msgbox indiquant : "Préparation de la liste terminé."

Je souhaiterais pouvoir afficher ce msgbox avec un message choisi dans une liste de façon aléatoire ( ou l'un derriere l'autre)

Ceci afin de mettre un peu détente dans mon tableau ( et rendra aussi l’utilisateur + attentif car lira plus facilement le msgbox sans cliquer de façon automatique sur "ok"

Par ex :

"Préparation de la liste terminé."
"Ok c'est prêt"
" Et voila la liste est prête"

Cette liste pouvant être dans une feuille du document excel

Merci pour vos réponses ou proposition
 
Re : Afficher une message Msgbox choisi dans une liste

Bonjour Eric57.
Ce que j'imagine, c'est la création d'un Dictionary avec comme clés des chiffres.
Ensuite un chiffre aléatoire est déterminé comme clé et la MsgBox affichera l'item correspondant.

Code:
Sub Test()

    Set d = CreateObject("Scripting.Dictionary")
    d.Item(1) = "Un"
    d.Item(2) = "Deux"
    d.Item(3) = "Trois"
    
    Message_Aléatoire = d.Item(Int(3 * Rnd) + 1) 'Changer le 3 par le nombre de clés
    MsgBox Message_Aléatoire
    
End Sub
 
Re : Afficher une message Msgbox choisi dans une liste

Bonjour Eric
essaye ceci:
Tu crée un tableau de string comme ceci:
Tu appelle la fonction randomize pour un tirage aléatoire
Voilà
A essayer
A++
 
Re : Afficher une message Msgbox choisi dans une liste

Merci pour vos réponses.

thebenoit59, ta méthode marche bien , mais est-il possible de la temporiser pour fermer le createObject

comme par exemple avec CreateObject('Wscript.shell').Popup 'Le Texte', 10, 'Le Titre'

Roro69, j'ai testé mais je ne sais pas ou placer toutes ces infos, et j'ai une erreur quand j'appel ma macro

Mais celle là me plais aussi, est-il possible de la lier a une feuille qui contiendrait les messages ? ( plus facile a changer ou allonger ?
 
Re : Afficher une message Msgbox choisi dans une liste

Bonsour®
les messages seront en colonne 1 à partir de A1 dans l'onglet nommé :"Liste Messages"

la macro s'occupe ensuite de tout !!! 🙄
VB:
Sub MSGAlea()
Dim NoMessage As Integer
Randomize
With Sheets("Liste messages")
NoMessage = 1 + (Int(Rnd() * .Range("a65535").End(xlUp).Row))
MsgBox .Cells(NoMessage, 1), Choose(1 + Rnd() * 2, vbInformation, vbExclamation), NoMessage
End With
End Sub
 
Re : Afficher une message Msgbox choisi dans une liste

Bonsoir®
les messages seront en colonne 1 à partir de A1 dans l'onglet nommé :"Liste Messages"

[/CODE]

Merci pour ce code GEEDEE.

J'ai une question concernant les colonnes,

Je souhaite avoir plusieurs colonnes, mais pour chaque type de réponses

Donc comment faire pour qu'il n'aille que dans la colonne A , ou que dans la colonne B par ex.

=> modif : Ok j'ai trouvé j'ai mais Range("D65535") et je selectionne ma colonne dans (Nomessage, 1) colonne 1 ou (nomessage, 2) colonne 2

Est il possible de temporiser ? pour que celui-ci se ferme au bout de 3 secondes
 
Dernière édition:
Re : Afficher une message Msgbox choisi dans une liste

Bonsoir a essayer :
A++
 
Re : Afficher une message Msgbox choisi dans une liste

Merci Roro69, je suis parti sur ce code.

Cela fonctionne bien, sauf de temps en temps la temporisation ne fonctionne plus et les messages restent affichés .
 
- 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

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