Bonjour à tous, cela fait un bye, je continue à me balader sur le forum en mode underground mais je suis un peu bloqué aujourd'hui donc je voudrai avoir des avis.
je suis sur une fonction VBA qui copie une feuille EXCEL "origine" afin d'en manipuler les données par la suite, l'imprimer et la supprimer. Cela fonctionne bien et mais j'ai une boucle qui peut être amenée à effectuer une centaine de fois cette manipulation et la copie est très longue (beaucoup de shapes dans la feuille en question), et lors de cette boucle, EXCEL freeze (page blanche + Microsoft EXCEL - Ne répond pas) puis tout redevient normal après traitement.
J'ai optimisé le code avec:
La fonction de copie native à EXCEL:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Application.Calculation = xlCalculationManual Application.ScreenUpdating = False Application.DisplayAlerts = False
Mais la lenteur ne provient pas du code VBA car je constate une lenteur identique en manuel.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ThisWorkbook.Sheets("RECAP").Copy After:=Worksheets("RECAP") ActiveSheet.Name = "TRAIT_RECAP"
Avez-vous une idée? je pensais placer la feuille "origine" à copier dans un autre classeur EXCEL et faire une copie de ce fichier (surement moins long??) puis injecter les infos en appelant le classeur EXCEL ainsi copié??
Vous avez peut-être une solution plus simple à mettre en place, mon gros problème étant le freeze "Page Blanche" du style tout à planter... je voudrai constater l'avancer du traitement avec une progressbar...
Merci pour votre aide.
P.S. Précision importante: je suis sur Excel 2010 et Windows 7
Partager