re
bonjour
je vais reposer la question autrement
un msgbox par definition bloque toute action tant que l'on a pas repondu
ce qui peut empecher l'utilisateur de faire une betise
alors qu'en est il de tes besoins?????
- parce que la methode (userform2) n'est pas bloquante
- par ce que la methode (frame) peut l'etre seulement si la frame occupe tout la surface du userform et au dessus de tout les autre controls
un test qui serait bien a faire et tres simple pour ne pas jetter la solution du userform 2
dans le activate du userform2 mettre le msgbox en mode (response) et dans la condition du response fermer le usf2( et faire ce qui aurait été prevu sans)
juste pour voir si le msgbox apparait au dessus

ca fait un peu beaucoup selon moi pour un simple message mais il faut tester
peut etre meme le faire dans le queryclose du usf2 etant donné que le usf2 a pris le dessus quand il c'est affiché
a mediter
allez juste pour tester
met ce code dans ton userform2
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| Option Explicit
Private Sub UserForm_Activate()
Me.Height = 0: Me.Width = 0: Unload Me
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Dim style, response
style = vbYesNo + vbCritical + vbDefaultButton2 ' Définit les boutons.
response = MsgBox("maintenant que tu le vois le message" & vbCrLf & " tu veux faire quoi fermer ou pas fermer ", style, "un message qui se vois non de dieu!!!")
If response = vbYes Then
Unload UserForm1 ': Unload UserForm2
Else
Unload UserForm2
End If
End Sub |
voila et la c'est bloquant

les deux userforms etant en mode modal =fakse bien sur
Partager