J'ai un classeur principal sur lequel je récupère des copies de feuilles
d'autres classeur. Via un script vba, j'ouvre un classeur Excel, copie une
de ses feuilles sur le classeur principal et referme le classeur en
question... mais un grand nombre de fois... J'ai ainsi plus de 400 classeurs
à ouvrir en rafale avec copie de feuille. Le souci est que cela prend pas
mal de temps.
Lorsque la macro s'effectue, elle crée une instance Excel à l'ouverture du
classeur (via Workbook.Open), le temps que le classeur soit présent lors de
la copie, puis la supprime (lors du Workbook.Close). Je suppose que je
pourrais gagner du temps à ouvrir les classeurs Excel dans la même instance
que celle de mon classeur principal.
Mais comment forcer Excel à s'ouvrir dans la même instance ?
Y'aurait-il d'autres possibilités pour raccourcir la durée d'exécution de
cette macro ? Je passe par une boucle où j'utilise déjà le ScreenUpdating =
False et le EnableEvents = False.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
LSteph
Bonjour,
On ne saurait apporter plus de modification à ton code que ce que l'on peut en voir. En cette absence on va quand même déjà aventurer une réponse:
Pourquoi diable créer une nouvelle instance excel?
Ceci suffirait:
... Via un script vba, j'ouvre un classeur Excel, copie une de ses feuilles sur le classeur principal et referme le classeur en question..
Réserve toute personnelle: cela fait peut-être un peu lourd dans un seul classeur.
... mais un grand nombre de fois... J'ai ainsi plus de 400 classeurs à ouvrir en rafale avec copie de feuille
Cordialement.
-- LSteph
On 19 juil, 15:06, "HD" wrote:
Bonjour,
J'ai un classeur principal sur lequel je récupère des copies de feuil les d'autres classeur. Via un script vba, j'ouvre un classeur Excel, copie un e de ses feuilles sur le classeur principal et referme le classeur en question... mais un grand nombre de fois... J'ai ainsi plus de 400 classe urs à ouvrir en rafale avec copie de feuille. Le souci est que cela prend p as mal de temps.
Lorsque la macro s'effectue, elle crée une instance Excel à l'ouvertu re du classeur (via Workbook.Open), le temps que le classeur soit présent lor s de la copie, puis la supprime (lors du Workbook.Close). Je suppose que je pourrais gagner du temps à ouvrir les classeurs Excel dans la même in stance que celle de mon classeur principal.
Mais comment forcer Excel à s'ouvrir dans la même instance ?
Y'aurait-il d'autres possibilités pour raccourcir la durée d'exécut ion de cette macro ? Je passe par une boucle où j'utilise déjà le ScreenUp dating = False et le EnableEvents = False.
Pour info, je travaille avec Excel 2007.
Merci d'avance pour votre aide. -- @+ HD
Bonjour,
On ne saurait apporter plus de modification à ton code que ce que
l'on peut en voir.
En cette absence on va quand même déjà aventurer une réponse:
Pourquoi diable créer une nouvelle instance excel?
Ceci suffirait:
... Via un script vba, j'ouvre un classeur Excel, copie une
de ses feuilles sur le classeur principal et referme le classeur en
question..
Réserve toute personnelle: cela fait peut-être un peu lourd dans un
seul classeur.
... mais un grand nombre de fois... J'ai ainsi plus de 400 classeurs
à ouvrir en rafale avec copie de feuille
Cordialement.
--
LSteph
On 19 juil, 15:06, "HD" <h...@anti.spam.fr> wrote:
Bonjour,
J'ai un classeur principal sur lequel je récupère des copies de feuil les
d'autres classeur. Via un script vba, j'ouvre un classeur Excel, copie un e
de ses feuilles sur le classeur principal et referme le classeur en
question... mais un grand nombre de fois... J'ai ainsi plus de 400 classe urs
à ouvrir en rafale avec copie de feuille. Le souci est que cela prend p as
mal de temps.
Lorsque la macro s'effectue, elle crée une instance Excel à l'ouvertu re du
classeur (via Workbook.Open), le temps que le classeur soit présent lor s de
la copie, puis la supprime (lors du Workbook.Close). Je suppose que je
pourrais gagner du temps à ouvrir les classeurs Excel dans la même in stance
que celle de mon classeur principal.
Mais comment forcer Excel à s'ouvrir dans la même instance ?
Y'aurait-il d'autres possibilités pour raccourcir la durée d'exécut ion de
cette macro ? Je passe par une boucle où j'utilise déjà le ScreenUp dating =
False et le EnableEvents = False.
On ne saurait apporter plus de modification à ton code que ce que l'on peut en voir. En cette absence on va quand même déjà aventurer une réponse:
Pourquoi diable créer une nouvelle instance excel?
Ceci suffirait:
... Via un script vba, j'ouvre un classeur Excel, copie une de ses feuilles sur le classeur principal et referme le classeur en question..
Réserve toute personnelle: cela fait peut-être un peu lourd dans un seul classeur.
... mais un grand nombre de fois... J'ai ainsi plus de 400 classeurs à ouvrir en rafale avec copie de feuille
Cordialement.
-- LSteph
On 19 juil, 15:06, "HD" wrote:
Bonjour,
J'ai un classeur principal sur lequel je récupère des copies de feuil les d'autres classeur. Via un script vba, j'ouvre un classeur Excel, copie un e de ses feuilles sur le classeur principal et referme le classeur en question... mais un grand nombre de fois... J'ai ainsi plus de 400 classe urs à ouvrir en rafale avec copie de feuille. Le souci est que cela prend p as mal de temps.
Lorsque la macro s'effectue, elle crée une instance Excel à l'ouvertu re du classeur (via Workbook.Open), le temps que le classeur soit présent lor s de la copie, puis la supprime (lors du Workbook.Close). Je suppose que je pourrais gagner du temps à ouvrir les classeurs Excel dans la même in stance que celle de mon classeur principal.
Mais comment forcer Excel à s'ouvrir dans la même instance ?
Y'aurait-il d'autres possibilités pour raccourcir la durée d'exécut ion de cette macro ? Je passe par une boucle où j'utilise déjà le ScreenUp dating = False et le EnableEvents = False.