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
Modérateur
Dernière intervention
23 décembre 2008
23
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
26
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
6
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
6
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