[XLS 2007] Lenteur VBA après exécution d'ExportAsFixedFormat

Bonjour à tous,

Je suis en train de développer un applicatif permettant principalement d'extraire des informations depuis des fichiers .CSV, de les répartir sur différents onglets & différents tableaux. Il est ensuite possible d'enregistrer le classeur au format .PDF. Et c'est là que le bât blesse...

En effet, l'import des données est relativement rapide (étant donné que j'écris dans un ListObject). Mais une fois qu'un enregistrement en .PDF a été fait, l'exécution de la procédure est beaucoup, beaucoup !, plus lente !

L'un de vous a-t-il déjà été confronté à ce problème de ralentissement suite à l'exécution de la fonction ExportAsFixedFormat ?

J'insiste bien sur le fait que l'exécution de l'import de données avant enregistrement en .PDF est correct, mais qu'après on observe une lenteur incroyable...

Je vous joins le classeur excel ainsi qu'un dossier contenant les fichiers .CSV à dézipper (sinon l'import ne marchera pas)

Pour tester : 1- Dézipper le fichier PUBLIC. 2- Appuyer sur le bouton 'Nettoyer' (les onglets sont réinitialisés). 3- Cliquer sur le bouton 'Importer' (puis sélectionner le dossier contenant le dossier PUBLIC précédemment dézippé.). 4- Cliquer sur le bouton 'PDF'. 5- Recommencer les étapes 2- et 3-, et observer la différence de temps d'exécution

D'avance merci pour votre aide

Cédric

21public.zip (14.41 Ko)
16demo.xlsm (250.74 Ko)

Bonjour

bon je rencontre le même soucis

je passe d'un temps d’exécution de ton code d'importation de environ 6 secondes à 180s une fois l'export pdf fait...

je viens de vérifier en mettant uniquement cette ligne en commentaire

ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=vREpUSer,......

je pensais que c'était éventuellement un problème de libération de mémoire car tu utilise bcp de tableaux mais visiblement c'est pas cela....; car le temps d’exécution du code reste globalement le même en faisant l'export pdf (sans la ligne précédente) puis de nouveau l'importation....

donc c'est vraiment la ligne qui fait l'export qui pose problème... j'avais pensez aussi que le problème venait des propriétées que tu intégrais au doc pdf, mais en supprimant cette partie, toujours le même soucis...

j'ai essayé avec une ligne de code que j'utilise régulièrement j'obtiens le même soucis....

je ne comprends donc pas le problème

Désolé

Fred

Bonjour Fred,

Merci pour ton retour (au moins je ne suis pas fou, il y a bien un problème avec la commande ExportAsFixedFormat !)

Effectivement, j'utilise beaucoup de tableaux, mais j'ai du mal à me passer des ListObjects et de leurs propriétés tellement pratiques...

Si je ne peux pas résoudre ce problème, je pense partir vers la solution suivante : Après l'export en .PDF, fermeture puis réouverture du classeur Excel. Ce qui m'amène à une autre question :

Sans transformer le projet en usine à gaz, est-il possible de fermer le classeur courant puis de le rouvrir ?

Cédric

Bonjour,

J'ai finalement trouvé la solution, après quelques moments passés sur Google...

Il 'suffit' de désactiver l'affichage des sauts de page via la méthode Worksheet.DisplayPageBreaks = False (Pourquoi ? Aucune idée, mais le ralentissement n'est plus qu'un mauvais souvenir !)

Bonjour

heureux pour toi si tu as trouvé la solution, comme cela j'ai appris quelque chose aujourd'hui

mais une question quand même ou place tu le

DisplayPageBreaks = False

ai niveau de ton export pdf ou au niveau de la récupération ???

car j'ai fait un test non concluant de mon coté, donc je voudrais savoir...

merci

fred

Je place ce code juste après l'export en . PDF :

'====Impression et affichage des onglets
450   ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=vREpUSer, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True  'Imprime les onglets sélectionnés en PDF
'Impression du fichier .PDF
460   For Each Ws In ThisWorkbook.Worksheets 'Balaye les onglets du classeur
470       Ws.Visible = xlSheetVisible 'Onglet visible
480       Ws.DisplayPageBreaks = False 'Masque les sauts de page
490   Next Ws

(Le fait de rendre visible les onglets est spécifique à ce programme)

OK merci

Fred

Rechercher des sujets similaires à "xls 2007 lenteur vba execution exportasfixedformat"