OVH Cloud OVH Cloud

MsgBox ne prenant pas la main

7 réponses
Avatar
Mario
Bonjour,

Je souhaiterai créer une message box d'alerte mais qui laisse la main.
Explication, pour l'instant, en fonction de certains signaux déclencheurs, un
message d'alerte (msgbox) apparait mais tant que je ne clique pas sur OK,
l'application ne tourne plus derrière et je souhaiterai qu'elle continue.
Si vous avez donc une idée d'une option de message box permettant de laisser
la main, je suis preneur.
Merci

7 réponses

Avatar
FxM
Mario wrote:
Bonjour,

Je souhaiterai créer une message box d'alerte mais qui laisse la main.
Explication, pour l'instant, en fonction de certains signaux déclencheurs, un
message d'alerte (msgbox) apparait mais tant que je ne clique pas sur OK,
l'application ne tourne plus derrière et je souhaiterai qu'elle continue.
Si vous avez donc une idée d'une option de message box permettant de laisser
la main, je suis preneur.
Merci


Bonjour,


Userform non modal ...

@+
FxM

Avatar
Oliv'
Mario que je salut a écrit dans

Bonjour,

Je souhaiterai créer une message box d'alerte mais qui laisse la main.
Explication, pour l'instant, en fonction de certains signaux
déclencheurs, un message d'alerte (msgbox) apparait mais tant que je
ne clique pas sur OK, l'application ne tourne plus derrière et je
souhaiterai qu'elle continue.
Si vous avez donc une idée d'une option de message box permettant de
laisser la main, je suis preneur.
Merci


Je ne sais pas si c'est faisable avec MSGBOX
mais tu peux utiliser un USERFORM tout simple
que tu affiche par

monuserform.show vbModeless

ou alors aussi avec une commande :
macommande = "net send " & Environ("ComputerName") & " ""mon texte"""
Shell (macommande)


--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Pour me joindre : http://cerbermail.com/?V8r2o1YHl4
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Pour me joindre : http://cerbermail.com/?V8r2o1YHl4
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Avatar
Mario
OK, merci à vous 2, j'ai pas pigé la 2ème solution, mais je passe par le
userform.
J'ai encore un problème ceci dit.
En fait, mon programme tourne toutes les mn et il se peut que plusieurs
alertes sonnent en même temps. Avec mon msgbox, j'avais un message d'alerte
pour chacun.
A présent, comme je n'ai qu'une userform, seule la dernière alerte est
visible car à chaque fois, je réécris sur le caption.
Voyez vous une solution pour avoir toutes mes alertes ?
Encore Merci

Mario
Avatar
Oliv'
Mario que je salut a écrit dans

OK, merci à vous 2, j'ai pas pigé la 2ème solution, mais je passe par
le userform.
J'ai encore un problème ceci dit.
En fait, mon programme tourne toutes les mn et il se peut que
plusieurs alertes sonnent en même temps. Avec mon msgbox, j'avais un
message d'alerte pour chacun.
A présent, comme je n'ai qu'une userform, seule la dernière alerte est
visible car à chaque fois, je réécris sur le caption.
Voyez vous une solution pour avoir toutes mes alertes ?
Encore Merci

Mario


essaye avec cet exemple
Sub label()
Load UserForm1
Message = ""

'première alerte
Message = "premiere alerte"
UserForm1.Label1.Caption = Message
UserForm1.Show vbModeless

'2 alerte
Message = Message & vbCr & "2 alerte"
UserForm1.Label1.Caption = Message
UserForm1.Repaint

End Sub

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Pour me joindre : http://cerbermail.com/?V8r2o1YHl4
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Avatar
Mario
Merci Oliv, mais le nombre d'alerte est aléatoire, en fait la solution ne
serait pas d'écrire tout sur la même forme à la suite, mais de faire
apparaître une forme par alerte. Bon te prends pas la tête dessus, merci pour
ton aide.



Mario que je salut a écrit dans

OK, merci à vous 2, j'ai pas pigé la 2ème solution, mais je passe par
le userform.
J'ai encore un problème ceci dit.
En fait, mon programme tourne toutes les mn et il se peut que
plusieurs alertes sonnent en même temps. Avec mon msgbox, j'avais un
message d'alerte pour chacun.
A présent, comme je n'ai qu'une userform, seule la dernière alerte est
visible car à chaque fois, je réécris sur le caption.
Voyez vous une solution pour avoir toutes mes alertes ?
Encore Merci

Mario


essaye avec cet exemple
Sub label()
Load UserForm1
Message = ""

'première alerte
Message = "premiere alerte"
UserForm1.Label1.Caption = Message
UserForm1.Show vbModeless

'2 alerte
Message = Message & vbCr & "2 alerte"
UserForm1.Label1.Caption = Message
UserForm1.Repaint

End Sub

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Pour me joindre : http://cerbermail.com/?V8r2o1YHl4
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~






Avatar
Jacques93
Bonjour Mario,

Peut être une piste :

Dim usf As UserForm1

Private Sub CommandButton1_Click()
Set usf = New UserForm1
usf.Label1.Caption = "Alerte à :" & Time
usf.Show vbModeless
End Sub

Important : Il faut que usf soit déclaré au nivua du module, et non pas
dans la procèdure, sinon l'objet est détruit à la sortie de cette procédure.

Merci Oliv, mais le nombre d'alerte est aléatoire, en fait la solution ne
serait pas d'écrire tout sur la même forme à la suite, mais de faire
apparaître une forme par alerte. Bon te prends pas la tête dessus, merci pour
ton aide.



Mario que je salut a écrit dans


OK, merci à vous 2, j'ai pas pigé la 2ème solution, mais je passe par
le userform.
J'ai encore un problème ceci dit.
En fait, mon programme tourne toutes les mn et il se peut que
plusieurs alertes sonnent en même temps. Avec mon msgbox, j'avais un
message d'alerte pour chacun.
A présent, comme je n'ai qu'une userform, seule la dernière alerte est
visible car à chaque fois, je réécris sur le caption.
Voyez vous une solution pour avoir toutes mes alertes ?
Encore Merci

Mario


essaye avec cet exemple
Sub label()
Load UserForm1
Message = ""

'première alerte
Message = "premiere alerte"
UserForm1.Label1.Caption = Message
UserForm1.Show vbModeless

'2 alerte
Message = Message & vbCr & "2 alerte"
UserForm1.Label1.Caption = Message
UserForm1.Repaint

End Sub

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Pour me joindre : http://cerbermail.com/?V8r2o1YHl4
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~







--
Cordialement,

Jacques.



Avatar
Mario
Jacques, You are a Genius !!!!
It works now ! Thx


Bonjour Mario,

Peut être une piste :

Dim usf As UserForm1

Private Sub CommandButton1_Click()
Set usf = New UserForm1
usf.Label1.Caption = "Alerte à :" & Time
usf.Show vbModeless
End Sub

Important : Il faut que usf soit déclaré au nivua du module, et non pas
dans la procèdure, sinon l'objet est détruit à la sortie de cette procédure.

Merci Oliv, mais le nombre d'alerte est aléatoire, en fait la solution ne
serait pas d'écrire tout sur la même forme à la suite, mais de faire
apparaître une forme par alerte. Bon te prends pas la tête dessus, merci pour
ton aide.



Mario que je salut a écrit dans


OK, merci à vous 2, j'ai pas pigé la 2ème solution, mais je passe par
le userform.
J'ai encore un problème ceci dit.
En fait, mon programme tourne toutes les mn et il se peut que
plusieurs alertes sonnent en même temps. Avec mon msgbox, j'avais un
message d'alerte pour chacun.
A présent, comme je n'ai qu'une userform, seule la dernière alerte est
visible car à chaque fois, je réécris sur le caption.
Voyez vous une solution pour avoir toutes mes alertes ?
Encore Merci

Mario


essaye avec cet exemple
Sub label()
Load UserForm1
Message = ""

'première alerte
Message = "premiere alerte"
UserForm1.Label1.Caption = Message
UserForm1.Show vbModeless

'2 alerte
Message = Message & vbCr & "2 alerte"
UserForm1.Label1.Caption = Message
UserForm1.Repaint

End Sub

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Pour me joindre : http://cerbermail.com/?V8r2o1YHl4
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~







--
Cordialement,

Jacques.