Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Temporisation macro

  • Initiateur de la discussion Initiateur de la discussion st007
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

st007

XLDnaute Barbatruc
Bonjour,

Après quelques jours d'essais, je me résous a faire appel à un ami ....
J'essaye d'automatiser l'enchaînement de plusieurs macro, le soucis est que ces macro dépendent de la durée d'exécution de taches externe à excel.
Séparément, tout fonctionne et en pas à pas aussi, mais je patiente entre les F8,
comment "expliquer" çà en VBA

VB:
Sub A_Extraire_DICOM()           'macro qui crée des fichiers .txt
Dim RetVal As Long
Dim NOMDOSSIER$
NOMDOSSIER = ThisWorkbook.Path & "\ENTETESDICOM"
RetVal = Shell("D:\DICOMParser -fD:\IMAGESDAT -s -o" & NOMDOSSIER) 'durée d'exécution notable et aléatoire

'pour temporiser, j'avais pris l'idée de comptabiliser le nombre de fichier du dossier source, et tant qu'il n'existe pas autant de fichier .txt, on do events, .. avant d'executer la macro de renommage, mais

nbfichier = ScanFolder("D:\IMAGESDAT\")
nbfichier2 = ScanFolder("D:\ENTETESDICOM\")
Do
DoEvents
Loop Until nbfichier2 = nbfichier
bExe = True                                       'pour enchainement macro
B_Renommer_avec_dateheure_creation     'macro suivante
End Sub
Function ScanFolder(Path As String)
Dim FSO As Object, Folder As Object, File As Object
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Folder = FSO.GetFolder(Path)
Set File = Folder.Files
ScanFolder = File.Count
End Function
 
Re : Temporisation macro

Bonsoir.
Si nbfichier2 <> nbfichier pourquoi cela devrait il changer dans un boucle où nbfichier2 n'est pas revérifié ?
Par ailleurs je pense qu'il vaudrait mieux pas de Function ScanFolder et tout faire dans la Sub A_Extraire_DICOM.
De préférence en utilisant la réf Microsoft Scripting Runtime et nulle part de variables As Object.
Il ne resterait qu'à faire un Do until Doss2.Files.Count >= nbfichier: Doevents: Loop

Ça donnerait donc quelque chose comme ça :
VB:
Sub A_Extraire_DICOM()           'macro qui crée des fichiers .txt
Dim RetVal As Long, FSO As New FileSystemObject, NbFichiers1&, Doss2 As Folder
Dim NOMDOSSIER$
NOMDOSSIER = ThisWorkbook.Path & "\ENTETESDICOM"
RetVal = Shell("D:\DICOMParser -fD:\IMAGESDAT -s -o" & NOMDOSSIER) 'durée d'exécution notable et aléatoire

'pour temporiser, j'avais pris l'idée de comptabiliser le nombre de fichier du dossier source, et tant qu'il n'existe pas autant de fichier .txt, on do events, .. avant d'executer la macro de renommage, mais

NbFichiers1 = FSO.GetFolder("D:\IMAGESDAT").Files.Count
Set Doss2 = FSO.GetFolder("D:\ENTETESDICOM")
Do
   DoEvents
   Loop Until Doss2.Files.Count >= NbFichiers1
bExe = True                                       'pour enchainement macro
B_Renommer_avec_dateheure_creation     'macro suivante
End Sub
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

G
Réponses
0
Affichages
1 K
guiboubou233
G
S
Réponses
3
Affichages
1 K
M
Réponses
13
Affichages
5 K
M
A
  • Question Question
Réponses
0
Affichages
1 K
Antoine98
A
M
Réponses
2
Affichages
2 K
A
  • Question Question
Réponses
3
Affichages
1 K
S
Réponses
15
Affichages
2 K
N
Réponses
1
Affichages
1 K
N
V
Réponses
5
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…