Bouton quitter inopérant sur mon programme

Résolu
ARENIUS
Messages postés
16
Date d'inscription
jeudi 27 janvier 2005
Statut
Membre
Dernière intervention
8 décembre 2005
- 8 déc. 2005 à 10:03
aieeeuuuuu
Messages postés
698
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
20 mai 2011
- 8 déc. 2005 à 14:38
Bonjour à tous!
voila j'ai un problème sur un programme que je suis en train de faire. Je vous joint le code ci dessous.(je suis débutant vous moquez pas :D)
Mon problème est le suivant. J'ai une fonction dans mon programme qui boucle à l'infini (c'est voulu). Mais je veux pouvoir l'interrompre en appuyant sur le bouton quitter de mon interface. Or quand je lance le programme le bouton quitter est inopérant. Existe il un moyen de reprendre la main ?
Merci

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
'Déclaration des variables
Dim sString As String
Dim FSO As New FileSystemObject
Dim tsFile As TextStream
Dim Sauvmem As String
Dim Mychaine As String
Dim sString1 As String


Private Sub cmdQuit_Click()
End
End Sub


Public Sub cmdsurveillance_Click()
If cmdQuit.Value = True Then Exit Sub
Do
Call surveillance
Loop


End Sub


Public Sub surveillance()


1
'Ouverture en lecture du fichier texte
If chk5423ha.Value = False Then GoTo 2
On Error GoTo 6 ' Si erreur aller au marqueur 6
'Ouverture du fichier Gecwin et mise en memoire de l'ensemble du fichier dans sFile
Set tsFile = FSO.OpenTextFile("[file://climat5423ha/d/spirale2/data/gecwin.log \\climat5423ha\d\spirale2\data\gecwin.log]")
sfile = tsFile.ReadAll
tsFile.Close
'Lecture des 188 derniers caractères de sFile
sString1 = Right(sfile, 188)
'Lecture de 6 caractères à partir du 9 ieme caractère de sString1
Mychaine = Mid(sString1, 9, 20)
'Ouverture du fichier Sauvmem et lecture
Open "C:\logsurveillance\sav\sav5423ha.txt" For Input As #1
Line Input #1, Sauvmem
Close #1
'Comparaison entre sauvmem et Mychaine
If Sauvmem <> Mychaine Then
'Ouverture en écriture du fichier sav5423ha
Open "C:\logsurveillance\sav\sav5423ha.txt" For Output As #1
Print #1, Mychaine
Close #1
'Recherche de la chaîne de caractère voulue dans Mychaine et envoimail si necessaire
If InStr(1, Mychaine, "defaut") > 0 Or InStr(1, Mychaine, "alarme") > 0 Then
Call envoimail
End If
Else: GoTo 2
End If

2

Call cmdsurveillance_Click

End Sub

Private Sub envoimail()


Dim config As CDO.Configuration
Dim email As Object


Mychaine2 = Mid(sString1, 9, 60)
Set config = New CDO.Configuration
With config.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = CDO.cdoSendUsingPort
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.arenius.fr"
.Update
End With


Set email = CreateObject("CDO.Message")
With email
Set .Configuration = config
.From = "[mailto:xxxxxxx@arenius.fr xxxxxxx@arenius.fr]"
.To = "[mailto:xxxxxxxxx@arenius.fr xxxxxxxxx@arenius.fr]"
.Subject = "Alerte!!défaut sur l'une des machines"
.TextBody = "" & (Mychaine2)
.Send
End With


Text1.Text = "alerte!!!Défaut detecté sur une des machines"



End Sub

3 réponses

aieeeuuuuu
Messages postés
698
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
20 mai 2011
2
8 déc. 2005 à 10:36
salut

ton bouton ne marche plus, car comme ta procedure est appelee en boucle, elle ne rend pas la main au systeme qui ne peut donc pas "gerer" que l'utilisateur clique sur le bouton.

il faut que tu rajoute l'instruction DoEvents, qui indique justement au programme qu'il doit rendre la main au systeme pour que celui ci puisse gerer les evenements.

tu peux par exmple faire

Do
Call surveillance
DoEvents
Loop
3
ARENIUS
Messages postés
16
Date d'inscription
jeudi 27 janvier 2005
Statut
Membre
Dernière intervention
8 décembre 2005

8 déc. 2005 à 11:47
merci pour ton aide :p
0
aieeeuuuuu
Messages postés
698
Date d'inscription
jeudi 16 janvier 2003
Statut
Membre
Dernière intervention
20 mai 2011
2
8 déc. 2005 à 14:38
de rien...
0