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 :

VBA et le lancement simulané de plusieurs traitements


Sujet :

VBA

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 30
    Points : 21
    Points
    21
    Par défaut VBA et le lancement simulané de plusieurs traitements
    Bonjour,
    Je cherche à lancer simultanément ( au même instant) trois traitements via un programme vba.

    Merci pour vos propositions.

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    VBA est monotâche. Tu peux au mieux espérer lancer trois macros consécutives dans une quatrième macro.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  3. #3
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Il existe quand même un moyen de faire du multithread en passant par VBS depuis VBA !
    http://analystcave.com/excel-multith...sing-vbscript/

    Ou par les API :
    http://forums.codeguru.com/showthrea...-same-function
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 30
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par cerede2000 Voir le message
    Il existe quand même un moyen de faire du multithread en passant par VBS depuis VBA !
    http://analystcave.com/excel-multith...sing-vbscript/

    Ou par les API :
    http://forums.codeguru.com/showthrea...-same-function
    ,

    Merci pour votre liens.

    Je souhaite créer 3 fichiers .bat ( fichier1.bat, fichier2.bat, fichier3.bat) en simultanés et les lancer - les trois fichiers- en simultanés.
    Merci à l'avance

  5. #5
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Ah ben par contre pour faire ça il y a largement plus simple !!!!
    Tu fait un BAT "maitre" qui lancera les 3 autres.
    Donc côté VBA tu appel juste ton BAT principal.

    Et tu appel les 3 autres avec start qui permet de ne pas attendre la fin d’exécution
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 30
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par cerede2000 Voir le message
    Ah ben par contre pour faire ça il y a largement plus simple !!!!
    Tu fait un BAT "maitre" qui lancera les 3 autres.
    Donc côté VBA tu appel juste ton BAT principal.

    Et tu appel les 3 autres avec start qui permet de ne pas attendre la fin d’exécution
    Merci pour votre réponse, sachant que je touche peu VBA,
    Si vous me permettez, je souhaite profiter de votre expertise pour poser deux questions :
    - Il y a de moyen de déclencher un ".bat" copié sur un répertoire commun entre deux serveurs sans les deux serveurs soient connecté entre eux ?
    - Sous VBA, comment on peut identifier l'utilitaire de zip par défaut ? peut-on choisit un autre utilitaire ? c'est quoi l'utilitaire de zip et dézip le plus rapide sous VBA ?

  7. #7
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Pour lancer un programme quel qu'il soit, donc même un BAT, sur une autre machine il faut faire du remote exe !
    Là c'est un poil plus compliqué, le plus simple reste encore d'utiliser PsExec en le lançant depuis VBA pour qu'il aille lancer le programme sur la machine distante.

    Si tu veux zipper/dezipper depuis VBA et que ça reste facilement transportable (utilisable par d'autres utilisateurs), je te conseil vivement d'utiliser ce qui est déjà présent dans Windows !
    Après si c'est juste pour toi, tu peux voir à utiliser 7zip en cmd via VBA.
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 30
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par cerede2000 Voir le message
    Pour lancer un programme quel qu'il soit, donc même un BAT, sur une autre machine il faut faire du remote exe !
    Là c'est un poil plus compliqué, le plus simple reste encore d'utiliser PsExec en le lançant depuis VBA pour qu'il aille lancer le programme sur la machine distante.

    Si tu veux zipper/dezipper depuis VBA et que ça reste facilement transportable (utilisable par d'autres utilisateurs), je te conseil vivement d'utiliser ce qui est déjà présent dans Windows !
    Après si c'est juste pour toi, tu peux voir à utiliser 7zip en cmd via VBA.
    Merci beaucoup pour ces explications..Je vais les essayer...

    Sinon, pour le lancement, c'est qui est intéressant, quand je suis sur le serveur a, en lancant VBA, après avoir généré le fichier batch.bat et le copier sur le répertoire commun(
    V aux serveur a et b, il est souhaitable est que le fichier batch.bat se lance automatiquement sur le serveur b sachant que les deux serveurs sont non connecté.
    Merci encore.

  9. #9
    Membre expert
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 725
    Points : 3 338
    Points
    3 338
    Par défaut
    Ben après si tu décris un peu plus précisément ce que cherche à faire sur chaque serveurs on peut surement te proposer autre chose.
    Et pourquoi VBA, pourquoi ne passe tu pas par VBS ou Powershell qui lui permet de faire tu multithread en plus
    Par pitié !!!! :Si vous ne savez pas faire cliquez ici !
    Citation Envoyé par Marc-L
    C'est dommage que parfois tu sois aussi lourd que tu as l'air intelligent…

  10. #10
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Développeur VBA/C#/VB.Net/Power Platform
    Inscrit en
    Juillet 2007
    Messages
    14 594
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur VBA/C#/VB.Net/Power Platform
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 594
    Points : 34 265
    Points
    34 265
    Par défaut
    Salut,

    pour le lancement simultané, le mieux reste selon moi le planificateur de taches de Windows.

    http://jpcheck.developpez.com/tutori...ous-windows-7/

    Tu peux faire une détection de fichier disponible déposé par ton serveur 1 sur un emplacement partagé avec le serveur 2.

    J'avais tenté de faire des exemples à ce sujet ici : http://jpcheck.developpez.com/tutori...risateur-base/
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 30
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par cerede2000 Voir le message
    Ben après si tu décris un peu plus précisément ce que cherche à faire sur chaque serveurs on peut surement te proposer autre chose.
    Et pourquoi VBA, pourquoi ne passe tu pas par VBS ou Powershell qui lui permet de faire tu multithread en plus
    Merci beaucoup pour ton message.
    Je suis prennant pour vos techniques de VBS ou Powershell..
    J'ai demandé VBA, parce que je connais pas VBS, Ni Powershell
    Sinon, sur VBS, j'ai vu un programme pas mal pour le zip, peut -on associer le code de VBS en dessous avec un compresseur capable de zipper de gros fichier de 1000 GO dans 5 minutes ou moins ? Merci

    Voir en dessous, la partie extraite de http://www.computerhope.com/forum/in...topic=137593.0
    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
    'Get command-line arguments.
    Set objArgs = WScript.Arguments
    InputFolder = objArgs(0)
    ZipFile = objArgs(1)
     
    'Create empty ZIP file.
    CreateObject("Scripting.FileSystemObject").CreateTextFile(ZipFile, True).Write "PK" & Chr(5) & Chr(6) & String(18, vbNullChar)
     
    Set objShell = CreateObject("Shell.Application")
     
    Set source = objShell.NameSpace(InputFolder).Items
     
    objShell.NameSpace(ZipFile).CopyHere(source)
     
    'Required!
    wScript.Sleep 2000

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2010
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 30
    Points : 21
    Points
    21
    Par défaut
    Citation Envoyé par jpcheck Voir le message
    Salut,

    pour le lancement simultané, le mieux reste selon moi le planificateur de taches de Windows.

    http://jpcheck.developpez.com/tutori...ous-windows-7/

    Tu peux faire une détection de fichier disponible déposé par ton serveur 1 sur un emplacement partagé avec le serveur 2.

    J'avais tenté de faire des exemples à ce sujet ici : http://jpcheck.developpez.com/tutori...risateur-base/
    Merci beaucoup
    Je vais tester

Discussions similaires

  1. Réponses: 9
    Dernier message: 10/05/2007, 10h56
  2. [VBA-E]une macro unique pour plusieurs fichiers excel
    Par fanchic29 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/04/2006, 16h20
  3. [VBA-E]Recherche de date dans plusieurs feuilles
    Par atypik dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 05/04/2006, 20h36
  4. [excel vba]case à cocher dans excel pour plusieurs lignes
    Par fcoisb dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/03/2005, 11h23
  5. [VBA-E] Impression page paire sur plusieurs onglets
    Par liop49 dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 17/02/2005, 15h19

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