Appeler et executer 2 sub avant que la 1ere n'ait fini de s'executer

cs_zerbault Messages postés 4 Date d'inscription samedi 7 février 2009 Statut Membre Dernière intervention 7 février 2009 - 7 févr. 2009 à 14:31
cs_zerbault Messages postés 4 Date d'inscription samedi 7 février 2009 Statut Membre Dernière intervention 7 février 2009 - 7 févr. 2009 à 18:15
Bonjour

J'ai une sub qui appelle une autre. Ce que j'aimerais faire c'est que la sub principale A appelle une premiere fois la sub B et apres une tempo de quelques secondes, la sub B est reappellee a nouveau et commence a s'executer, avant meme que la 1ere sur B n'ait fini de s'executer.
Avez-vous une idee pour realiser cela?

Merci

Zerbault

5 réponses

PCPT Messages postés 13280 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 49
7 févr. 2009 à 16:48
salut,
même si le multithreading existe en vb.net, tu auras du mal à proprement appeler B depuis A alors que tu es encore dans B (et qu'en plus A n'est pas terminée et est l'appelante)

si d'après ton code tu en as le besoin, c'est qu'il y a un problème de conception

montre nous ton code et explique nous le besoin, on essayera de t'orienter sur la manière d'arranger tout çà

<hr size="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
0
cs_zerbault Messages postés 4 Date d'inscription samedi 7 février 2009 Statut Membre Dernière intervention 7 février 2009
7 févr. 2009 à 17:32
Salut,

Merci de m'avoir repondu

voici mon code:

Sub train()
Dim i, j, k, l, m As Integer
Cells(9, 1).Interior.color = vbGreen
For i = 1 To 24
j = i - 1
Cells(9, i).Interior.color = vbRed
If j > 0 Then
    Cells(9, j).Interior.color = vbGreen
End If
Call tempo
Call pauses(9, i)

Next i

For k = 10 To 11
        l = k - 1
        Cells(k, 24).Interior.color = vbRed
        Cells(l, 24).Interior.color = vbGreen
        Call tempo
Next k

For i = 25 To 29
        j = i - 1
        Cells(11, i).Interior.color = vbRed
        Cells(11, j).Interior.color = vbGreen
        Call tempo
        Call pauses(11, i)
Next i

For k = 0 To 1
        l = 10 - k
        m = l + 1
        Cells(l, 29).Interior.color = vbRed
        Cells(m, 29).Interior.color = vbGreen
        Call tempo
Next k

For i = 30 To 36
        j = i - 1
        Cells(9, i).Interior.color = vbRed
        Cells(9, j).Interior.color = vbGreen
        Call tempo
        Call pauses(9, i)
Next i

For k = 10 To 11
        l = k - 1
        Cells(k, 36).Interior.color = vbRed
        Cells(l, 36).Interior.color = vbGreen
        Call tempo
Next k

For i = 1 To 35
        j = 36 - i
        k = j + 1
        Cells(11, j).Interior.color = vbRed
        If k < 37 Then
            Cells(11, k).Interior.color = vbGreen
        End If
        Call tempo
        Call pauses(9, j)
Next i

For k = 0 To 1
        l = 10 - k
        m = l + 1
        Cells(l, 1).Interior.color = vbRed
        Cells(m, 1).Interior.color = vbGreen
        Call tempo
Next k

End Sub

Sub tempo()

  Application.Wait Now + TimeValue("00:00:01")

End Sub

Sub pauses(u, v)
   

    If Cells(u + 1, v).Interior.color = vbYellow Then
        Application.Wait Now + TimeValue("00:00:01")
    End If
    If Cells(u - 1, v).Interior.color = vbYellow Then
        Application.Wait Now + TimeValue("00:00:01")
    End If
End Sub

En fait il s'agit de train sur un circuit, je veux faire partir plusieurs trains avec un interval. Le train est materialise par la couleur rouge.

Merci
0
cs_zerbault Messages postés 4 Date d'inscription samedi 7 février 2009 Statut Membre Dernière intervention 7 février 2009
7 févr. 2009 à 17:34
J'ai oublie de preciser, c'est la sub train() que je veux appeler plusieurs fois avec un intervalle donne entre 2 appels
0
cs_Jack Messages postés 14007 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
7 févr. 2009 à 17:49
C'est du VBA dans Excel, pas du .Net --> Catégorie de la question modifiée
Voilà comment on perd du temps à répondre à des questions mal posées
0

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

Posez votre question
cs_zerbault Messages postés 4 Date d'inscription samedi 7 février 2009 Statut Membre Dernière intervention 7 février 2009
7 févr. 2009 à 18:15
Je t'en prie un peu de respect. La diplomatie t'es passée au dessus?
0