Attendre l'ouverture d'un fichier pour continuer le programme

Bonjour à tous,

Je n'ai pas trouvé solution à mon problème dans le forum donc je me permets de vous solliciter...

Dans Fuel_Tracker.xlsm, j'ai écrit une macro qui ouvre un fichier Fuel_Tracker_Fuel_Team.xlsm, qui copie une de ses feuille puis la colle dans le fichier Fuel_Tracker.xlsm.

Seulement, l'ouverture du fichier est trop lente et la macro continue sans qu'il soit ouvert ce qui induit un message d'erreur.

Voici le code :

Sub Import()

    Range("A1").Select 
'Dans cette cellule il y a le lien internet du fichier

    Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True

    Workbooks("Fuel_Tracker_Fuel_Team.xlsm").Activate
    Sheets("Fuel_Tracker").Select
    Sheets("Fuel_Tracker").CopyAfter:=Workbooks("Fuel_Tracker.xlsm").Sheets(8)

    Workbooks("Fuel_Tracker_Fuel_Team.xlsm").Close SaveChanges:=False

End Sub

Comment attendre que le fichier s'ouvre pour poursuivre la macro ?

Merci par avance,

Laurent

Bonjour,

Solution possible : plutôt que d'ouvrir le classeur en l'activant (ce qui va exécuter la macro), l'ouvrir sans évènement, puis lancer la macro manuellement à partir du classeur actif.

Classeur="Fuel_Tracker_Fuel_Team.xlsm"
With Application
    .EnableEvents = False ' Bloque les évènements du classeur (auto open ...)
    Workbooks.Open Filename:=Classeur
    .EnableEvents = True
End With
' Le classeur est ouvert et actif
' Exécute la macro
a$ = Application.Run("'" & Classeur & "'!Nom_Macro")

Autre solution :

Tester si la nouvelle feuille (copiée par le classeur) existe si oui on continue, sinon on attend. Pour cela il faut connaître le nom de la feuille copiée et elle ne doit pas déjà exister.

A étudier

Bonne journée

Eric

Rechercher des sujets similaires à "attendre ouverture fichier continuer programme"