Macro simultanées séparées
Résolu/Fermé
A voir également:
- Macro simultanées séparées
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro word - Guide
- Jitbit macro recorder - Télécharger - Confidentialité
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Logiciel macro - Télécharger - Organisation
4 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 754
1 mars 2011 à 14:53
1 mars 2011 à 14:53
Salut,
Ton exemple peux aussi s'écrire :
1
2 -> attendre 8 secondes et ecrire "MINCE 2"
3
4
5
6
7
8 ----> "MINCE 2"
9 -> attendre 2 secondes et écrire "SUPER 1"
10
11 ----> "SUPER 1"
12 -> attendre 4 secondes et écrire "houla 3"
13
14
15
16 ----> "houla 3"
17
18
Bon je suppose que cela n'est qu'un exemple..... Dis nous ce que tu souhaites faire exactement.
Ton exemple peux aussi s'écrire :
1
2 -> attendre 8 secondes et ecrire "MINCE 2"
3
4
5
6
7
8 ----> "MINCE 2"
9 -> attendre 2 secondes et écrire "SUPER 1"
10
11 ----> "SUPER 1"
12 -> attendre 4 secondes et écrire "houla 3"
13
14
15
16 ----> "houla 3"
17
18
Bon je suppose que cela n'est qu'un exemple..... Dis nous ce que tu souhaites faire exactement.
Mdr merci XD mais c'est pas se que j'ai demandé =)=)
se que je demande c'est :
je lance une macro qui fait quelque chose ( peut importe quoi ) pendant cette macro je veu lancer une autre macro qui va attendre quelques seconds et qui va faire autrechose ensuite ( sans stoper la macro principale )
1
2 -> attendre 9 seconds et ecrire "SUPER 1" // premiere SOUS MACRO
3
4
5 -> attendre 3 seconds et ecrire " MINCE 2" // deuxieme SOUS MACRO
6
7
8 ----> "MINCE 2"
9 -> attendre 7 secondes et ecrire "houla 3" // 3eme SOUS MACRO
10
11 ----> "SUPER 1"
12
13
14
15
16 ----> "houla 3"
17
18
L'ORDRE NE PEUT PAS CHANGER ^^
c'est un program donc automatique on ne peut pas changer lodre des macro pour que ca nous arange =)
c'est pour ca que j'ai une dificulté =)
merci pour ta rèponse en tout cas
se que je demande c'est :
je lance une macro qui fait quelque chose ( peut importe quoi ) pendant cette macro je veu lancer une autre macro qui va attendre quelques seconds et qui va faire autrechose ensuite ( sans stoper la macro principale )
1
2 -> attendre 9 seconds et ecrire "SUPER 1" // premiere SOUS MACRO
3
4
5 -> attendre 3 seconds et ecrire " MINCE 2" // deuxieme SOUS MACRO
6
7
8 ----> "MINCE 2"
9 -> attendre 7 secondes et ecrire "houla 3" // 3eme SOUS MACRO
10
11 ----> "SUPER 1"
12
13
14
15
16 ----> "houla 3"
17
18
L'ORDRE NE PEUT PAS CHANGER ^^
c'est un program donc automatique on ne peut pas changer lodre des macro pour que ca nous arange =)
c'est pour ca que j'ai une dificulté =)
merci pour ta rèponse en tout cas
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 754
1 mars 2011 à 15:14
1 mars 2011 à 15:14
Tu dis :
je lance une macro qui fait quelque chose ( peut importe quoi ) Et moi je te réponds :
Et bien non pas "peu importe quoi"... Selon ce que tu veux, il y a peut être une autre solution. D'ou ma première réponse. Maintenant, s'il s'agit d'un exercice, retourne voir dans ton bouquin...
Sinon, je me répète, dis nous ce que tu souhaites faire exactement...
je lance une macro qui fait quelque chose ( peut importe quoi ) Et moi je te réponds :
Et bien non pas "peu importe quoi"... Selon ce que tu veux, il y a peut être une autre solution. D'ou ma première réponse. Maintenant, s'il s'agit d'un exercice, retourne voir dans ton bouquin...
Sinon, je me répète, dis nous ce que tu souhaites faire exactement...
Alors si je demande ca c'est qu'il y'a une raison ^^ mais tu peux pas le deviner j'ai besoins que ca marche comme ca.
Non ce n'est pas un exercice lol je vois pas un prof demander ca XD
mais je ne peut pas te donner des infos sur ce que je veu traiter car malheureusement je n'en ai pas le droit.
Je suis devellopeur, mais vba j'ai jamais fait seulement c'est une contrainte que j'ai pour le projet que je suis entrain de faire... (a mon grd regret)
Tu as l'air de t'y connaitre , dis moi juste si c'est possible d'avoir 2 ( ou + ) macros qui tournent en même temps sachant qu'il y'a une macro principale et que les sous macros se contentent d'attendre puis de remplir une cellule avant de s'arretter.
Merci a toi
Non ce n'est pas un exercice lol je vois pas un prof demander ca XD
mais je ne peut pas te donner des infos sur ce que je veu traiter car malheureusement je n'en ai pas le droit.
Je suis devellopeur, mais vba j'ai jamais fait seulement c'est une contrainte que j'ai pour le projet que je suis entrain de faire... (a mon grd regret)
Tu as l'air de t'y connaitre , dis moi juste si c'est possible d'avoir 2 ( ou + ) macros qui tournent en même temps sachant qu'il y'a une macro principale et que les sous macros se contentent d'attendre puis de remplir une cellule avant de s'arretter.
Merci a toi
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 754
Modifié par pijaku le 1/03/2011 à 15:56
Modifié par pijaku le 1/03/2011 à 15:56
Alors, je vais te répondre simplement [que l'on me corrige si je me trompe], VBA procède dans l'ordre des procédures. Il termine la première avant d'exécuter la suivante.
EDIT : tu peux lancer une 2ème macro dans la 1ère, mais celle ci s'arrête le temps que la 2ème s'achève.
EDIT2 : je ne connais que les prémices de VBA...
EDIT : tu peux lancer une 2ème macro dans la 1ère, mais celle ci s'arrête le temps que la 2ème s'achève.
EDIT2 : je ne connais que les prémices de VBA...
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 754
Modifié par pijaku le 1/03/2011 à 15:56
Modifié par pijaku le 1/03/2011 à 15:56
Pour reprendre ton image de "tickets", voici un exemple :
Sub macro1() [A1] = "test" Application.Wait Now + TimeValue("0:00:04") Call macro2 Application.Wait Now + TimeValue("0:00:02") Call macro3 Application.Wait Now + TimeValue("0:00:03") [A4] = "terminé" End Sub Sub macro2() [A2] = "Test 1" End Sub Sub macro3() [A3] = "test 2" End Sub
merci pour ton code mais dans ton exemple ils s'exectutent l'un aprés l'autre :
ca va afficher :
test tes1 test2
et moi j'aurai voulu que ca affiche ( pour le même program ) :
test test2 test1
car test1 attend 4 sec alors que test2 attend que 2 seconds ...
Tu vois ce que je veu dire ?
ca va afficher :
test tes1 test2
et moi j'aurai voulu que ca affiche ( pour le même program ) :
test test2 test1
car test1 attend 4 sec alors que test2 attend que 2 seconds ...
Tu vois ce que je veu dire ?
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 754
3 mars 2011 à 09:53
3 mars 2011 à 09:53
J'avais bien compris, mais ce que tu demandes n'est pas possible...
Yesss j'ai trouvé un moyen , pour ceux qui on un souci dans le même genre ^^
j'ai testé plein de truc et j'ai fini par avoir un truc qui marche lol gros coup de chance :
Sub Macro2()
Dim Test As Date
Dim Test1 As Date
Dim Test2 As Date
Test = Now + TimeSerial(0, 0, 1)
Test1 = Now + TimeSerial(0, 0, 5)
Test2 = Now + TimeSerial(0, 0, 10)
Application.OnTime Test2, Procedure:="Macro3"
Application.OnTime Test, Procedure:="Macro4"
Application.OnTime Test1, Procedure:="Macro5"
End Sub
ca execute la macro 4 au bout de 1 second ... puis la macro 5 au bout de 5 second et enfin la macro 3 au bout de 10 seconde !!!
a vérifier avec un chrono mais ca ma l'air bon =)
j'ai testé plein de truc et j'ai fini par avoir un truc qui marche lol gros coup de chance :
Sub Macro2()
Dim Test As Date
Dim Test1 As Date
Dim Test2 As Date
Test = Now + TimeSerial(0, 0, 1)
Test1 = Now + TimeSerial(0, 0, 5)
Test2 = Now + TimeSerial(0, 0, 10)
Application.OnTime Test2, Procedure:="Macro3"
Application.OnTime Test, Procedure:="Macro4"
Application.OnTime Test1, Procedure:="Macro5"
End Sub
ca execute la macro 4 au bout de 1 second ... puis la macro 5 au bout de 5 second et enfin la macro 3 au bout de 10 seconde !!!
a vérifier avec un chrono mais ca ma l'air bon =)