Succession macro via CALL
bonjour a tous,
voici mon code :
Sub analyse_totale()
Call analyse_automatique1
Call analyse_automatique2
Call analyse_automatique3
End Sub
Sub analyse_automatique1()
Dim cheminfichier As String
Dim classeur As Object
cheminfichier = "I:\lechemin du 1er fichier.xlsm"
Set classeur = Workbooks.Open(cheminfichier, , ReadOnly:=True)
Application.Run "'" & classeur.Name & "'!automatisation"
' Libérez la mémoire
Set classeur = Nothing
End Sub
Sub analyse_automatique2()
Dim cheminfichier As String
Dim classeur As Object
cheminfichier = "I:\lechemin du 2eme fichier.xlsm"
Set classeur = Workbooks.Open(cheminfichier, , ReadOnly:=True)
Application.Run "'" & classeur.Name & "'!automatisation"
' Libérez la mémoire
Set classeur = Nothing
End Sub
Sub analyse_automatique3()
Dim cheminfichier As String
Dim classeur As Object
cheminfichier = "I:\lechemin du 3e fichier.xlsm"
Set classeur = Workbooks.Open(cheminfichier, , ReadOnly:=True)
Application.Run "'" & classeur.Name & "'!automatisation"
' Libérez la mémoire
Set classeur = Nothing
End Subchaque analyse automatique fonctionne parfaitement bien lorsque que je les appelles chacune leur tour.
en revanche quand je demande l'analyse totale, seule le 1er code se lance et n'enchaine pas sur les suivants....
qu'est ce que j'oublie ...? svp
merci d'avance.
Bonjour,
le temps d'exécution peut-être... Une variable interrupteur au début de chaque Sub qui indique que c'est en cours, et des boucles d'attente pour passer à l'appel de la Sub suivante en fonction de l'interrupteur :
Public EnCours As Boolean
Sub analyse_totale()
Call analyse_automatique1
Do
DoEvents
Loop While EnCours = True
Call analyse_automatique2
Do
DoEvents
Loop While EnCours = True
Call analyse_automatique3
End Sub
Sub analyse_automatique1()
EnCours = True
Dim cheminfichier As String
Dim classeur As Object
cheminfichier = "I:\lechemin du 1er fichier.xlsm"
Set classeur = Workbooks.Open(cheminfichier, , ReadOnly:=True)
Application.Run "'" & classeur.Name & "'!automatisation"
' Libérez la mémoire
Set classeur = Nothing
EnCours = False
End Sub
Sub analyse_automatique2()
EnCours = True
Dim cheminfichier As String
Dim classeur As Object
cheminfichier = "I:\lechemin du 2eme fichier.xlsm"
Set classeur = Workbooks.Open(cheminfichier, , ReadOnly:=True)
Application.Run "'" & classeur.Name & "'!automatisation"
' Libérez la mémoire
Set classeur = Nothing
EnCours = False
End Sub
Sub analyse_automatique3()
Dim cheminfichier As String
Dim classeur As Object
cheminfichier = "I:\lechemin du 3e fichier.xlsm"
Set classeur = Workbooks.Open(cheminfichier, , ReadOnly:=True)
Application.Run "'" & classeur.Name & "'!automatisation"
' Libérez la mémoire
Set classeur = Nothing
End SubA vérifier...
Il y a peut-être plus simple et fonctionnel, si toutes fois ceci fonctionne !
@ bientôt
LouReeD
j'avais une instruction close dans le fichier suivant... desolé
du coup c'est résolu.
merci.
Ce n'est pas grave !
Merci pour votre retour, cela m'évite de rester aux abois !
@ bientôt
LouReeD