Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA
Général VBA Forum général VBA . Pour les logiciels spécifiques (Access, Excel, Word, ...), postez dans les bons sous forums.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/04/2007, 12h02   #1
Invité régulier
 
Inscription : février 2006
Messages : 39
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 39
Points : 8
Points : 8
Par défaut Lancer 2 macros en même temps

Bonjour,

J'aimerais savoir si quelqu'un connait une façon de lancer simultanément 2 macros ...

Je m'explique, j'aimerais lancer une macro dont une fonction va faire apparaitre une boîte de dialogue, et je voudrais la remplire automatiquement. Mais tant que la boite de dialogue est affichée, ma macro est en attente, donc je ne peux pas envoyer de donnée dans ma boite de dialogue en même temps.
Je me disais donc que si une autre macro tournait en même temps (à partir d'une autre session d'excel par exemple), je pourrais faire avec un contrôle de la presence de la boite de dialogue et la renseigner des qu'elle apparait.

(Je vous précise que je sais déjà comment identifier la boite de dialogue en question lorsqu'elle apparait)

Vous allez me dire : pourquoi tu fais apparaitre une boite de dialogue puisque tu la renseigne toi meme ? mais en fait je n'ai pas le choix car je dois impérativement, à uin moment donné utiliser une fonction programmée par quelqu'un d'autre.
amalane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2007, 15h44   #2
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 777
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 777
Points : 16 857
Points : 16 857
Envoyer un message via Skype™ à bbil
bon j'ai pas tout compris sur l'histoire des 2 macros.... mais voir peu-être :

Comment bloquer le code en utilisant une UserForm non modale ?

qui te permet d'ouvrir une boîte de dialogue sans bloquer le code...?
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2007, 22h15   #3
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Je rejoins bbil : C'est quoi ta "boîte de dialogue" ? Si c'est un msgox ou un inputbox, remplace la par un userform.
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2007, 07h53   #4
Membre Expert
 
Inscription : novembre 2006
Messages : 1 465
Détails du profil
Informations personnelles :
Âge : 49

Informations forums :
Inscription : novembre 2006
Messages : 1 465
Points : 1 411
Points : 1 411
je vois pas ou est le probleme
Citation:
la boite de dialogue est affichée, ma macro est en attente, donc je ne peux pas envoyer de donnée dans ma boite de dialogue en même temps.
actuellement tu fais
Code :
1
2
3
4
5
6
7
8
sub moncode
début du code
usf1.show
reste du code
end sub
et 
usf1.initialize()
end sub
et il te suffit de faire
Code :
1
2
3
4
5
6
7
8
sub macro A
début du code
usf1.show
end sub
et 
sub usf1.initialize()
reste du code
end sub
alsimbad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 09h59   #5
Invité régulier
 
Inscription : février 2006
Messages : 39
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 39
Points : 8
Points : 8
Non, ça ne marche pas.
Si je fais ça, la userform s'affiche à la fin du code d'initialisation

Par exemple : Je veux afficher une userform qui affiche l'évolution d'une variable pour en suivre l'évolution durant le code :

For i = 1 To 200000
UserForm_test.nombre = i
UserForm_test.Repaint
Next

Si je place ce code dans UserForm_Initialize :
Code :
1
2
3
sub macro A
 UserForm_test.show
end sub
et
Code :
1
2
3
4
5
6
sub UserForm_initialize()
For i = 1 To 200000
    UserForm_test.nombre = i
    UserForm_test.Repaint
Next
end sub
Alors la userform s'affiche une fois la boucle terminée, en affichant 200000. Moi je voudrais qu'elle s'affiche dès le début de la boucle et voir tous les nombres défiler dedans...
amalane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 10h10   #6
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Juste pour le principe, ouvre le zip qui est ici et vois si tu peux adapter quelque chose. Il affiche le temps qui passe en millièmes de seconde.
A+
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 14h10   #7
Membre du Club
 
Inscription : janvier 2006
Messages : 103
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : janvier 2006
Messages : 103
Points : 63
Points : 63
Envoyer un message via MSN à tangjuncn
qd tu ouvres 2 workbooks en même temps, tu ne peux pas le remplir par la macro lancée par le 2e workbook?
tangjuncn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/05/2007, 20h31   #8
Membre éprouvé
 
Inscription : février 2007
Messages : 491
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 491
Points : 469
Points : 469
bonjour
quel est le controle que tu veux faire evoluer en fonction d 1 variable
exterieur ?
patbou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2007, 00h31   #9
Inactif
 
Avatar de ouskel'n'or
 
Inscription : février 2005
Messages : 12 466
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 12 466
Points : 11 930
Points : 11 930
Si c'est pour un affichage, une textbox ou un label, mais le label suffit.
ouskel'n'or est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/05/2007, 08h16   #10
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 777
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 777
Points : 16 857
Points : 16 857
Envoyer un message via Skype™ à bbil
Citation:
Envoyé par bbil
bon j'ai pas tout compris sur l'histoire des 2 macros.... mais voir peu-être :

Comment bloquer le code en utilisant une UserForm non modale ?

qui te permet d'ouvrir une boîte de dialogue sans bloquer le code...?
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
 
Option Explicit
Sub MacroA()
Dim i As Long
UserForm_test.Show False
For i = 1 To 200000
 UserForm_test.nombre = i 'pas terrible le nom du label mais enfin....
 DoEvents
 If Not UserForm_test.Visible Then Exit For 'Cas ou  fermeture anticipée de la fenêtre
Next
'-- Boucle d'attente fermeture fenêtre
 While UserForm_test.Visible
        DoEvents
 Wend
End Sub
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h39.


 
 
 
 
Partenaires

Hébergement Web