Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
il ne me semble pas que ce morefun permette de modifier les msgbox.
il existe une classeur sur excelabo, réalisé par l'excellent Michel PIERRON qui permet de faire ceci, mais quand on voit le code utilisé, on prefere l'userform
Chose curieuse : lancés directement depuis l'éditeur VBE, ces tests ne fonctionnent pas (les boutons gardent leur valeur Oui/Non). Lancés depuis l'interface Excel, ça fonctionne !
On peut tout imaginer je pense (ou presque)..., cela dit, avec le code à base d'API issu de Michel Pierron ça me paraît guère probable... Ce code utilise comme base, une "vraie" MsgBox avec bouton "Yes/No/Cancel". Les fonctions API utilisées là, permettent uniquement de renommer ces boutons à l'affichage , mais ne permettent pas, comme ça, d'ajouter des boutons à ta guise... En tout cas, c'est hors de mes compétences l...
Hervé à dit:
faudra-t'il utiliser un paramarray dans la function MsgBoxPerso
Eh bien justement, comme j'ai trouvé le sujet sympa, je me suis amusé à bricoler une nouvelle façon de faire, sans API cette fois, et en utilisant effectivement un argument ParamArray...
Construire un Userform pour simuler une MsgBox est effectivement une bonne solution pour qui veut personnaliser ses boutons et en avoir autant que souhaité. On peut en tirer d'autres avantages aussi : modifier la police, la taille des caractères, l'alignement etc...
De mon point de vue, on se confronte toutefois à un inconvénient majeur : le poids représenté par l'Userform en question... Par ailleurs, adapter cet Userform pour qu'il puisse gérer plusieurs messages dans la même appli peut être parfois un véritable casse-tête : adapter l'userform à la taille du texte, afficher 1 ou plusieurs boutons pour tel ou tel messages à diffuser, etc...
Dans l'exemple ci-joint, j'ai donc opté pour un Userform créé à la volée avec une durée de vie aussi éphémère qu'une vraie MsgBox ! De cette manière, j'économise le poids d'un Usf "en dur" dans le fichier une fois enregistré sur le disque, et la gestion du nombre de boutons, leur disposition devient beaucoup plus aisée...
Dans cet exemple :
La taille du Userform s'adapte au texte et aux boutons.
La taille et l'alignement des boutons est automatique.
On peut mettre autant de boutons que souhaité.
La police de caractères, la taille et l'alignement du texte sont définissables lors de l'appel de la fonction (voir le code de l'exemple Test1)
On peut bien évidemment ajouter d'autres possibilités et je compte bien essayer d'améliorer encore ce code lorsque j'aurai un peu plus de temps...
ATTENTION toutefois, pour que ça puisse fonctionner, il convient impérativement de veiller à ce que l'option "Faire confiance au projet Visual Basic" soit cochée dans le menu Outils / Macros / Sécurité.
Sympa ce code ! Je l'ai repris pour un de mes travaux en l'utilisant de la façon suivante :
Code:
Private Sub Workbook_Opentest()
Dim Titre As String, Message As String, Police As String
Dim Alignement As Byte, Taille As Byte
Dim Choix As Byte
Dim z As String
Titre = "Mapping choice"
Alignement = 2 '1=Droite / 2=Centre / 3=Gauche
Police = "Arial"
Message = "Which kind of map do you want to use ?"
Choix = mDFmsbox(Titre, Message, Alignement, Police, 10, 1,2,3,4)
Select Case Choix
Case 1 =
Case 2 =
Case 3 =
Case 4 =
End Select
End Sub
En fait mon soucis est que quelque soit le bouton sur lequel je clique le choix va être 0. On ne peux donc pas avoir de différenciation de résultat... Si vous avez une idée
Ce site utilise des cookies pour personnaliser le contenu, adapter votre expérience et vous garder connecté si vous vous enregistrez.
En continuant à utiliser ce site, vous consentez à notre utilisation de cookies.