Bonjour à tous
je vous sollicite car je ne suis pas très aguerri sur la manip VBA. Ci-joint un fichier exemple. Dans Feuil1 il y a un bouton qui me permet d'enregistrer en PDF les feuilles 1,4,5,6,8,9 et 10. Ces feuilles constituent un rapport de base. J'aimerais offrir la possibilité d'ajouter des feuilles et que lorsque je clique sur le bouton "Impression PDF"; il y ait une check box qui me permette de choisir les feuilles à ajouter. Par défaut, seraient cochées les cases correspondant aux feuilles de base citées précédemment. Voir l'onglet "Donnees" dans lequel j'ai imagé cela.
Deux autres questions :
j'ai essayé de manier le code présent dans mon fichier récupéré sur un forum mais il ne comportait pas ce qu'il fallait faire pour dissocier les feuilles et revenir sur une feuille précise la feuille 1). Ce que j'ai écrit est certainement très moche et doit pouvoir être optimisé
With Sheets("Feuil12")
.Activate
End With
With Sheets("Feuil1")
.Select
End With
Pour finir, j'exécute cette macro actuellement sur un fichier qui est assez lourd et chargé de données et de graphiques. Dans mon fichier, j'ai un menu déroulant qui me permet de passer d'une installation à une autre avec des mises à jour de données et de calculs. Je lance l'impression PDF, je passe au site suivant etc. Pour les premieres impressions, tout se passe bien, j'ai, par exemple, 14 pages qui sortent dans mon PDF. Au bout du 4e ou 5e changement de site, quand je lance l'impression PDF, je n'ai plus que 10 pages qui sortent dans le PDF (je devrais toujours avoir 14 pages). Je suis obligé de fermer excel, de relancer le fichier, l'impression et là j'ai bien mes 14 pages. Je me dis qu'en fermant tout l'excel je dois vider une sorte de mémoire cache. Si c'est cela selon vous, est ce qu'il est possible d'insérer dans le code une fonction permettant de vider la mémoire à chaque lancement d'impression?
J'espère que vous pourrez m'aider.
Bonne soirée