Bonsoir,
Suite à des recherches infructueuses, sauriez-vous me dire s’ il est possible de positionnez une MsgBox. Il semblerait que non mais avant de me lancer dans un userform, donnez moi votre avis.
Par avance merci.
Cordialement
Bonsoir @el-catala
Regardez la macro dans ce billet : elle détaille toutes les options de Messagebox().
Pour montrer à la communauté que la question a trouvé sa réponse, cliquez sur ✓ à côté de la “bonne” réponse, et “votez” en cliquant sur la flèche ^ de toute réponse utile. Ce sont les mécanismes utilisés pour communiquer la qualité des questions et réponses sur ce site. Merci!
Pour tout complément d’information, **éditez**
votre question ou simplement **ajouter un commentaire**
. N’utilisez pas une réponse.
Cordialement, Michel
La procédure donnée par @mgl est très complète… mais peut-être un peu rébarbative
Si tu n’as besoin que de gérer la position tu peux réduire à ceci :
Sub Main
dim oWindow as object
dim oToolKit as object
dim oMessageBox as object
dim lMsgBoxType as long
dim lMsgBoxBtn as long
dim iRet as integer
oWindow = stardesktop.currentFrame.ContainerWindow
oToolKit = CreateUnoService("com.sun.star.awt.Toolkit")
lMsgBoxType = com.sun.star.awt.MessageBoxType.MESSAGEBOX
lMsgBoxBtn = com.sun.star.awt.MessageBoxButtons.BUTTONS_YES_NO_CANCEL + _
com.sun.star.awt.MessageBoxButtons.DEFAULT_BUTTON_NO
oMessageBox = oToolKit.createMessageBox(oWindow, lMsgBoxType, lMsgBoxBtn, "Titre du dialogue", "Texte du message")
oMessageBox.setPosSize(0, 0, , , com.sun.star.awt.PosSize.POS)
iRet = oMessageBox.execute
end sub
Dans cet exemple le message s’affiche en haut à gauche de la fenêtre appelante : les deux 0 dans la ligne setPosSize
sont les positions X et Y (par exemple si tu exécutes la procédure depuis ta fenêtre macro, et que cette dernière n’est pas en plein écran).
Si tu veux utiliser la procédure complète tu peux l’appeler ainsi :
sub testAsk
Dim strMsg As String : strMsg = "My name is " +chr(2)+ "John " +chr(2)+ "Roberts"
Dim aProps1(0) As New com.sun.star.beans.PropertyValue : aProps1(0).Name = "CharWeight" : aProps1(0).Value = 150.0
Dim aProps2(0) As New com.sun.star.beans.PropertyValue : aProps2(0).Name = "CharColor" : aProps2(0).Value = rgb( 255, 10, 10 )
Dim aStyles() : aStyles = Array( Array(), aProps1, aProps2 )
dim fontdesc as new com.sun.star.awt.FontDescriptor
with fontdesc
.Name = "Liberation Sans"
.Weight = 200
.Height = 22
end with
MessageBox( strMsg, 2, "Family" , 1, aStyles, 600, 100,fontdesc, 0,0)
end sub
Ici, la position est déterminée par les deux derniers 0 de la ligne (600 et 100 sont largeur/hauteur)
MessageBox( strMsg, 2, "Family" , 1, aStyles, 600, 100,fontdesc, 0,0)
Cordialement
Bonsoir,
Merci de votre aide. Je vais tester votre solution avant de fermer cette discussion. Je vous donnerai le résultat demain soir.
Bon week-end