IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Discussion :

Lancer 2 macros en même temps


Sujet :

VBA

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 58
    Points : 42
    Points
    42
    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.

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    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...?

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Je rejoins bbil : C'est quoi ta "boîte de dialogue" ? Si c'est un msgox ou un inputbox, remplace la par un userform.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    je vois pas ou est le probleme
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 58
    Points : 42
    Points
    42
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sub macro A
     UserForm_test.show
    end sub
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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...

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    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+

  7. #7
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    103
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Janvier 2006
    Messages : 103
    Points : 98
    Points
    98
    Par défaut
    qd tu ouvres 2 workbooks en même temps, tu ne peux pas le remplir par la macro lancée par le 2e workbook?

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Points : 542
    Points
    542
    Par défaut
    bonjour
    quel est le controle que tu veux faire evoluer en fonction d 1 variable
    exterieur ?

  9. #9
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Si c'est pour un affichage, une textbox ou un label, mais le label suffit.

  10. #10
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

Discussions similaires

  1. Impossible de lancer deux actions en même temps :/
    Par Cvbdev dans le forum Windows Forms
    Réponses: 11
    Dernier message: 08/05/2007, 14h39
  2. lancer 16 programmes en même temps
    Par piotr dans le forum Langage
    Réponses: 9
    Dernier message: 23/03/2007, 16h31
  3. lancer deux fonctions en même temps
    Par youp_db dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/09/2006, 12h11
  4. Lancer plusieurs .bat en même temps
    Par mdriesbach dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 22/09/2006, 16h37
  5. Lancer deux sons en même temps...
    Par Julien_riquelme dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 03/05/2003, 17h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo