Bonjour,
Je cherche à lancer simultanément ( au même instant) trois traitements via un programme vba.
Merci pour vos propositions.
Bonjour,
Je cherche à lancer simultanément ( au même instant) trois traitements via un programme vba.
Merci pour vos propositions.
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.
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
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 ?
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.
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
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
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager