Problème dans mon code en vb

J'essaye d'utiliser l'objet timer2 qui est une classe timerfm
mais ça ne fonctionne pas et je suis vraiment perdu.
Quelqu'un veut-il bien regarder mon code et me dire mes erreurs.
merci de bien vouloir dépanner un débutant.

' cecie est le moduel1

Dim timer As New timerfm
Dim timer2 As New timerfm

Sub ma_procédure()
response = MsgBox(" 1er envoi", vbYesNo)

If response = vbYes Then ' L’utilisateur a choisit Yes.
demar ' Effectue une action.
Else ' L’utilisateur a choisi No.
stope
End If
End Sub

Sub demar()
Application.OnTime Now + TimeValue("00:00:15"), "ma_Procédure"
End Sub

Sub stope()
Application.OnTime EarliestTime:=TimeValue("17:00:00"), _
Procedure:="ma_Procédure", Schedule:=False
End Sub

Sub utilobjet()
timer2.demar
End Sub

'ceci est le module de classe timerfm

Sub ma_procédure()
response = MsgBox(" 1er envoi viens de l'objet", vbYesNo)

If response = vbYes Then ' L’utilisateur a choisit Yes.
demar ' Effectue une action.
Else ' L’utilisateur a choisi No.
stope
End If
End Sub

Sub demar()
Application.OnTime Now + TimeValue("00:00:15"), "timerfm.ma_Procédure"
End Sub

Sub stope()
Application.OnTime EarliestTime:=TimeValue("17:00:00"), _
Procedure:="ma_Procédure", Schedule:=False
End Sub

---------------------------------------------

et encore merci

7 réponses

  1. je voudrais créer un timer que je pourrai utiliser sous excel. le timer n'existant pas en vba sous excel.

    en fait je voudrais qu' un ou plusieurs messages puissent apparaitre régulièrement.
    1. Bonjour,

      J'ai regardé un peu ton code et je ne comprend pas
      ce que tu veux faire. Déjà que je ne maitrise pas
      la notion des classes.

      Pour aller plus loin il faudrait que tu clarifie ton besoin.

      reponseu correspond à quoi ?

      Lupin
      1. J'ai continuer a travailler sur mon timer et maintenant j'ai un message d'erreur qui me dit que ma pile est pleine?Ca veut dire quoi? et comment y remédier?

        'voici mon objet timerfm

        Public Property Let responseu(ByVal Nb As String)

        responseu = "N"

        End Property

        Public Property Get responseu() As String

        responseu = "mm"
        End Property

        Function demar()
        Application.OnTime Now + TimeValue("00:09:15"), "Ma_Procedure"
        End Function

        ' voici la fonction que j'utilise pour faire démarrer mon timerfm

        Public timor As New timerfm

        Dim timer As New timerfm

        Sub Ma_Procedure()

        Dim Reponse As Integer

        Reponse = MsgBox(" 1er envoi", vbYesNo)

        If Reponse = vbYes Then ' L’utilisateur a choisit Yes.
        timer.demar ' Effectue une action.
        Else ' L’utilisateur a choisi No.
        timer.stope
        End If

        End Sub

        Je vous remercie de m'aider à y voire plus claire
        1. Salut le code du module :

          '*******************************************
          Option Explicit
          '

          Dim Timer As New TimerFm
          '

          Sub Ma_Procedure()

          ..Dim Reponse As Integer

          ..Reponse = MsgBox(" 1er envoi", vbYesNo)

          ..If Reponse = vbYes Then ' L’utilisateur a choisit Yes.
          ....Timer.Demar ' Effectue une action.
          ..Else ' L’utilisateur a choisi No.
          ....Timer.Stope
          ..End If

          End Sub
          '
          Le code du module de classe

          '*******************************************
          Option Explicit
          '

          Function Demar()
          ..Application.OnTime Now + TimeValue("00:00:15"), "Ma_Procedure"
          End Function
          '

          Function Stope()
          ..DoEvents 'Y a rien a faire !
          End Function

          '*******************************************

          Pour faire appel à cette procédure :

          Sub stope()
          Application.OnTime EarliestTime:=TimeValue("17:00:00"), _
          Procedure:="ma_Procédure", Schedule:=False
          End Sub

          L'instance suivant doit avoir été créé :
          Application.OnTime TimeValue("17:00:00"), "Ma_Procedure"

          Pour l'instant lorsque la routine est appellé par le timer,
          l'instance elle-même du timer n'existe plus, d'ou le message d'erreur ! ( il ne peut détruire ce qui n'a jamais été! )

          Lupin
          1. le message est impossible de trouver la macro"g\bases de données\ere1022005.xls!timerfm.ma_procédure"

            j'utilise le visual basic de excels.

            lorsque je rajoute *.frm Option Explicit

            j'ai un message :"erreur de compilation attendu numéro de ligne ou éttiquette ou instruction ou fin d'instruction"

            J'espère que ces renseignements pourront vous aider.
            1. Contributeur
              Quelle message d'erreur as-tu lors de la compilation sous VB ?
              Quelle est la version d Visual Basic ( 6 ou .Net ) ?
              As-tu mis au début de ton source *.frm Option Explicit
              1. Contributeur
                Il est en VBA et non en VB en fait...
            2. je ne sais pas si c'est utile de le préciser, mais j'utilise le vb de excel.