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

Macros et VBA Excel Discussion :

[VBA-E]Exécution d'une macro en arrière-plan


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 26
    Points : 8
    Points
    8
    Par défaut [VBA-E]Exécution d'une macro en arrière-plan
    Bonjour,

    Mon problème est le suivant :
    J'ai un onglet "Interface" comprenant des boutons qui lancent plusieurs macros, celles-ci s'exécutant dans un autre onglet.
    Quand la macro se lance, le focus se met sur l'onglet où la macro s'exécute et je n'arrive pas à le faire rester sur le 1er onglet .... (Notamment pour afficher une progression du calcul)

    D'avance merci !

  2. #2
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Points : 733
    Points
    733
    Par défaut
    Tu remet juste apres le lancement de la macro le focus sur l'onglet souaité...

    Feuil2.Select

    Mais attention que la marco ne contienne pas de ActiveSheet sinon ca ne marchera pas
    N'oubliez pas de mettre le

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 26
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par Vesta
    Mais attention que la marco ne contienne pas de ActiveSheet sinon ca ne marchera pas
    c'est rapé alors ....

    merci quand même

  4. #4
    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
    tu peu bloquer l'affichage sur feuille initiale et utiliser la barre de status pour afficher la progression ... voir exemple :

    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
    Sub test()
    'Bloque l'affichage avant le lancement de la mcro
     Application.ScreenUpdating = False
     Sheets(2).Activate
     For i = 1 To 1000
      Application.StatusBar = i
      DoEvents
     Next
     
     '--- Fin de la macro reviens sur feuille initiale
     ' et libére l'affichage
     Sheets(1).Activate
     Application.StatusBar = False
     Application.ScreenUpdating = True
    End Sub

  5. #5
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Points : 733
    Points
    733
    Par défaut
    Ou alors dans ta macro change tout les références a activesheet en feuil2 (ou le nome de ta feuille) ou se passe la macro
    N'oubliez pas de mettre le

  6. #6
    Futur Membre du Club
    Inscrit en
    Avril 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 26
    Points : 8
    Points
    8
    Par défaut
    Merci je vais tester ça !

  7. #7
    Futur Membre du Club
    Inscrit en
    Avril 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 26
    Points : 8
    Points
    8
    Par défaut
    Après essai au taf (et oué pas internet ...) ça marche merci !

    Par contre autre problème dans le même genre : une des macros que j'aimerais exécuter en arrière plan ouvre 2 fichiers. Quand je laisse Application.ScreenUpdating à True la macro s'exécute en 30 secondes (2 gros fichiers + de la copie de données ...). Par contre si je le passe à False pour masquer les opérations, le focus reste bien sur mon onglet "Interface" mais la macro met près de deux minutes à se dérouler .... Des idées ?

  8. #8
    Futur Membre du Club
    Inscrit en
    Avril 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 26
    Points : 8
    Points
    8
    Par défaut
    désolé pour l'up mais pas internet au taf donc pas moyen de voir des réponses demain ....

  9. #9
    Membre éclairé
    Inscrit en
    Septembre 2005
    Messages
    617
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 617
    Points : 733
    Points
    733
    Par défaut
    Lors de l'ouverture tu devrait pouvoir les ouvrir caché non?

    Sinon tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    application.Visible=false
    ou qqch comme ca
    peu etre que ca marche meme avec le Workbook...
    N'oubliez pas de mettre le

  10. #10
    Futur Membre du Club
    Inscrit en
    Avril 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 26
    Points : 8
    Points
    8
    Par défaut
    J'arrive à les ouvrir cachés pas de pb ... mais c'est bcp plus lent !
    J'essayerai le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Visible = False
    à la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.ScreenUpdating = False
    pour voir .... C'est pas vraiment la même chose c'est vrai

Discussions similaires

  1. [Toutes versions] VBA - exécuter automatiquement une macro
    Par NZL0401 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/04/2015, 19h50
  2. [XL-2010] Exécution d'une macro VBA sur feuilles et données verrouillées
    Par lysere dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/02/2014, 14h05
  3. Réponses: 5
    Dernier message: 18/10/2013, 11h33
  4. Empêcher la double exécution d'une tâche en arrière plan.
    Par Paul Van Walleghem dans le forum VB.NET
    Réponses: 2
    Dernier message: 29/08/2010, 16h12
  5. [VBA-E] [Excel] Lancer une macro à une heure donnée
    Par Lysis dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/10/2002, 12h15

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