VBA interrompu sur ouverture d'un nv classeur

Sima Qian -  
pilas31 Messages postés 1825 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Je voudrais avoir dans un classeur A.xls une macro qui ouvre un classeur B.xls, y fasse quelque chose, et le referme après l'avoir enregistré;
Connaissant très mal le VBA d'Excel, j'ai fais cela avec l'enregistreur, mais quand l'exécute ma macro elle ouvre bien B.xls puis, celui-ci devenant alors le classeur actif, elle ne va pas plus loin; comment modifier le code pour que la suite de ma macro continue à s'exécuter au delà de l'ouverture du classeur B.xls?
Un petit code exemple serait le bienvenu, merci d'avance !

1 réponse

pilas31 Messages postés 1825 Date d'inscription   Statut Contributeur Dernière intervention   645
 
Bonjour,

Il n'y a pas de raison que la macro ne continue pas. Par exemple la macro suivante :

Sub Macro_Exemple() 'Macro du classeur 1
'Le classeur 1 est actif
    Workbooks.Open Filename:="C:\Classeur2.xls"
    'Classeur 2 est actif
    'Travail sur le classeur 2 ...
    ActiveWorkbook.Save 'sauvegarde du classeur Actif donc le classeur 2
    ActiveWorkbook.Close 'fermeture du classeur 2
    'Le classeur 1 est actif
    'Travail sur le classeur 1 ...
End Sub

Par exemple Les Sheets, les Range et les Cells font référence au classeur actif.
Par contre si on veux parler du classeur qui contient la macro il faut préfixer par ThisWorkbook :

Par exemple ThisWorkbook.Name c'est le nom du classeur qui contient la macro et pas le nom du classeur actif

A+
0