Message temporisé

chocolatgc Messages postés 34 Date d'inscription samedi 18 février 2006 Statut Membre Dernière intervention 26 octobre 2012 - 20 juil. 2007 à 15:28
chocolatgc Messages postés 34 Date d'inscription samedi 18 février 2006 Statut Membre Dernière intervention 26 octobre 2012 - 21 juil. 2007 à 09:29
Salut à tous,

est-ce que quelqu'un peux m'aider SVP; Je cherche à afficher un message ou une UF pendant un temps précis, puis la faire diparaitre, du type

UF_Test.show
Function_Tempo(5)
UF_Test.Hide

Merci beaucoup pur votre aide

PS : J'ai trouve de quoi temporiser, mais la tempo ne démarre qu'après fermeture par un clic sur l'UF.

11 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
20 juil. 2007 à 15:32
salut,

Option Explicit

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Form_Load()

Debug.Print Time
Sleep 3000
Debug.Print Time

End Sub

~
<small>[code.aspx?ID=39466 Mortalino] ~
Colorisation automatique</small>

@++

(
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
20 juil. 2007 à 15:52
Bonjour,
Pourquoi tout "geler" ?

Il vaut peut être mieux tout simplement :

debut = timer
while timer < debut  + 3
  doevents
wend
0
cs_thephil Messages postés 189 Date d'inscription mercredi 21 août 2002 Statut Membre Dernière intervention 19 janvier 2011
20 juil. 2007 à 15:54
si je peux me permettre Mortalino, même si tu donnes toujours de bons conseils / sources sur ce site ... là je suis pas forcément d'accord avec ta méthode.

car je trouve que le sleep met "à genoux" le pc.

je placerais plutot un timer dans le "form principal", paramétré à 3000 avec la propriété enable =false au démarrage.
ensuite quand il y'a besoin d'afficher la fenetre ... on fait :

UF_Test.show
timer1.enable = true

+ la fonction timer:
Private Sub Timer1_Timer()
timer1.enable = false
Unload UF_Test.


End Sub
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
20 juil. 2007 à 15:59
Ok pour la Sub Sleep, mais bien que ce soit posté dans le thème VB6, je pensais qu'il était en VBA (car il utilise UF_Test, etc..  et UF pour moi voulais dire UserForm)
Si tel est le cas, pas de contrôle Timer mais pourquoi pas la solution de jmfmarques.
Si vb6, ok pour ta soluce

Sinon, pour que je sache ..  quelles sont les conséquences de l'utilisation de Sleep ?
Merci

@++

(
0

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

Posez votre question
cs_thephil Messages postés 189 Date d'inscription mercredi 21 août 2002 Statut Membre Dernière intervention 19 janvier 2011
20 juil. 2007 à 16:14
oui exact, si sous VBA, pas de timer bien sûr.

après les "conséquences systèmes" du Sleep sur l'os ou les autres appli? je pense pas qu'il y'en ait; mais je suis pas assez calé pour etre affirmatif à 100%, faudrait demander aux boss vb.
De pas en utiliser, c'est une histoire d'habitude et du type d'appli qu'on fait. C'est plus dans le sens où  (comme disait jmf...) c'est pas toujours très agréable/pratique de plus avoir la main sur une appli ou que ça raffraichisse pas/mal.
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
20 juil. 2007 à 16:27
Bonjour  Thephil,

1) Je n'ai jamais parlé du contrôle Timer (bien superflu ici) mais de la simple fonction Timer (ce n'est pas du tout pareil)
2) Oui, le sleep gênerait le déroulement des autres opérations dans le même "Thread"...(il les gèlerait carrément) !!
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 27
20 juil. 2007 à 18:07
 Bonjour

Et un Popup ?

Const TIMEOUT = 5
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, _
  "MsgBox personnalisé",4)
 
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
msgbox "suite"

jean-marc
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
20 juil. 2007 à 18:50
L'idée d'utiliser un popup (solution proposée par Jean Marc) me parait être une très bonne idée et elle est élégante.
0
chocolatgc Messages postés 34 Date d'inscription samedi 18 février 2006 Statut Membre Dernière intervention 26 octobre 2012
20 juil. 2007 à 23:03
Bonjour à tous et merci pour vos réponses, pour répondre à mortalino, je travail effectivement en VBA et utilise des UserForms. Me serai-je trompé en posant ma question ici? Désolé de ne pas maitriser le sujet assez profondément ! Est-ce que vos réponse son valable donc en VBA ?

Merci
Chocolat GC

PS : Précision, je développe des applications pour CATIA V5 en VBA ...
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
20 juil. 2007 à 23:13
D'où la nécessité ABSOLUE d'ouvrir ses discussions dans la section correspondant à son langage de développement !

La section adéquate était "Langages dérivés / VBA "
Bref...
0
chocolatgc Messages postés 34 Date d'inscription samedi 18 février 2006 Statut Membre Dernière intervention 26 octobre 2012
21 juil. 2007 à 09:29
Merci beaucoup pour la réponse, je vais reposer ma question dans "Langages dérivés / VBA ".

Désolé pour mon ignorance !

Chocolat GC
0
Rejoignez-nous