Enlever croix ds un MsgBox

hamster man Messages postés 103 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 21 juin 2007 - 31 mars 2006 à 09:11
hamster man Messages postés 103 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 21 juin 2007 - 3 avril 2006 à 19:18
Bonjour tout le monde,
voila mon probleme:

j'aimerais pouvoir retirer la croix de fermeture en haut a droite d'un MsgBox car c'est a court circuit aux boutons de reponses de celui ci.
si jamais on ne peut pas j'aimerais au moins pouvoir faire en sorte que la croix soit inactive.

merci d'avance pour une reponse!

8 réponses

apache88 Messages postés 78 Date d'inscription mercredi 26 janvier 2005 Statut Membre Dernière intervention 19 mars 2014
31 mars 2006 à 09:28
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
31 mars 2006 à 09:45
Salut,



Tu ne pourras pas enlever la 'tite croix sur un MsgBox.



Il faudra que tu passes par une MsgBox perso (à rechercher sur le site, il y en a un peu partout).




Manu
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
31 mars 2006 à 10:00
Bonjour à tous....

Possibilité de remplacer le MsgBox par un Popup.

Const TIMEOUT = 7
Set objShell = WScript.CreateObject("WScript.Shell")


Reponse = objShell.Popup(vbCrLf & _
"Ce Popup remplace un MsgBox" &vbCrLf&vbCrLf& "Sans action de votre part," &vbCrLf&vbCrLf&_
"ce popup s'effacera dans " &vbCrLf& TIMEOUT & " secondes" &vbCrLf&vbCrLf&_
"Vous ne pouvez pas fermer ce popup par la croix !!!" ,TIMEOUT, vbCrLf&_
"MsgBox personnalisé",vbYesNo + vbQuestion)

Select Case Reponse
Case vbYes: objShell.Popup "Vous avez cliqué sur Oui" & vbCrLf & vbCrLf & vbCrLf,TIMEOUT
Case vbNo: objShell.Popup "Vous avez cliqué sur Non" & vbCrLf & vbCrLf & vbCrLf,TIMEOUT
Case -1: Wscript.Quit
End Select

jean-marc
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
31 mars 2006 à 10:45
Salut,

Comme te le disais Manu, tu ne peux pas et il faut créer ton UserForm, tout en haut du code du UserForm, dans les déclarations, place ça :

Private Declare Function GetWindowLongA Lib "user32" _
(ByVal hwnd As Long, ByVal nIndex As Long) As Long


Private Declare Function SetWindowLongA Lib "user32" _
(ByVal hwnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long


Private Declare Function FindWindowA Lib "user32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Puis dans le UserForm_Initialize

Dim hwnd As Long
hwnd = FindWindowA("Thunder" & IIf(Application.Version Like "8*", _
"X", "D") & "Frame", Me.Caption)
SetWindowLongA hwnd, -16, GetWindowLongA(hwnd, -16) And &HFFF7FFFF

@ ++

Mortalino
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
1 avril 2006 à 23:45
Salut hamster man, salut à tous,

d'abord, je ne veux pas vous contrarier, mais il se trouve qu'on ne sait quand même pas grand chose du contexte du problème, pour élaborer autant de réponses différentes!


Est-ce sous VB, ou sous VBA? Je vous trouve bien catégoriques pour répondre en VBA (UserForm), mais rien ne l'indique dans sa question ?


Ensuite, admettons que l'on s'en fiche, admettons aussi que ce MsgBox, c'est un message affiché par hamster man, comment effectues-tu ton appel à la fonction MsgBox ? Il faut savoir qu'elle a des arguments facultatifs, mais qu'il est parfois bien utile de spécifier.

Si j'écris, sous VB6 ou Excel 2003 :
If MsgBox("test") = vbOK Then
intBranche = 1
End If
la boite de message affiche une croix, en haut à droite, et si je la clique, intBranche vaudra quand même 1.
Si je le fais sous Excel 97 ou 2000, la même boite apparait, et la croix est grisée !

Ensuite, sur n'importe lequel de ces 4 environnements d'exécution, si j'écris :
If MsgBox("test", vbYesNo) = vbYes Then
intBranche = 1
Else
intBranche = 2
End If
la boite de message apparait systématiquement grisée, si je clique Yes, alors intBranche vaudra 1, et si je clique No, intBranche vaudra 2!

Vu que vous êtes , il est possible que je me trompehamster man peut-être), qui osera faire ce test (qui, je vous l'accorde est long à reproduire :) ), et nous donner à tous le résultat ?

Bon, je n'avais pas voulu poser la question "Et sur quel OS?", et je vous le dit tout de suite, si le test me donne tort, je répondrais que c'est à cause de l'OS!

Dans le pire des cas, quelque chose me dit que si Excel peut griser cette croix, et qu'on peut griser d'autre croix, on doit pouvoir griser celle-là!


Par contre, à part ça, je ne critique aucune de vos solutions, toutes bonnes à mon avis.

à+


rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais
</SUP>
0
hamster man Messages postés 103 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 21 juin 2007
3 avril 2006 à 09:06
Merci a tous pour l'aide! je crois avoir reglé le probleme. Bon code a tous
0
rvblog Messages postés 792 Date d'inscription vendredi 4 mars 2005 Statut Membre Dernière intervention 12 juin 2012 7
3 avril 2006 à 10:12
Salut hamster man,

merci de nous faire profiter de la solution!

à+


rvblogn<SUP>
</SUP><SUP>Je veux ton bien... et je l'aurais
</SUP>
0
hamster man Messages postés 103 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 21 juin 2007
3 avril 2006 à 19:18
Et bien c'est tout simplement que j'ai remarquer que mes MsgBox que je genere grace a un bouton de commande a partir d'une forme ont la croix en haut a droite mais elle est grisée et sans mon intervention donc pour moi c'est un avantage maintenant je vous tiens au courant si jamais je trouve une solution.
0
Rejoignez-nous