Simplification code VBA

Bonjour le Forum,

Je demande votre aide pour voir si il y a moyen de simplifier voir d'améliorer le code de mon fichier. Suite à une mise à jour d'un texte règlementaire je suis obligé de refondre mon fichier qui était très basique au début, et tant qu'a le refaire autant l'améliorer. Du coup histoire de l'alléger je voudrais me servir de chacun des onglets qui représentent un point de graissage sur la voie ferrée, chacun de ces points ont un pas de visite de 3 ou 6 mois. Pour le moment je me suis débrouiller a "coder" avec l'enregistreur de macro, en compilant plusieurs actions. Le résultat est satisfaisant pour l’onglet 1, mais j'en ai 16 et du coup je peux recopier le code en changeant les "adresses" des données à copier, mais je ne suis pas convaincu que cela soit la meilleure méthode.

Au final mes compilations feront que j’aurai un bouton qui exécutera une macro 3mois, une 6 mois et une générale pour l’année.

Voici mon fichier en pièce jointe le but étant de le faire le plus « léger »possible pour des échanges par mails et avec nos pc qui datent d’une autre génération que tout soit « light » pour un usage simple et efficace.

En vous remerciant du temps passé

Didier

Bonjour

le but est d'imprimer toutes les feuilles ou de sélectionner la feuille que l'on veut imprimer ??

En attendant voici le code simplifié sur j'ai bien vu

fred

Bonjour Fred,

Si je te dis que tu m'as fait pétiller les yeux !!! Mon annuaire pour imprimer une page tu m'as transformé cela en un malheureux ticket de métro. Trop fort. Par contre pour l’impression les feuilles à donner pour les relever sont des copies de l’onglet « imprimé points de graissage » la ton code ca imprime la page « liste » avec les infos dessus lol

Pour répondre a ta question, tu peux voir sur l’onglet « Liste » trois boutons, 3 mois, 6 mois, tous,

Par exemple le bouton « 3mois » doit imprimer les 8 zones de la Défense et Suresnes, le bouton « 6mois » les 8 zones de St Cloud, Montreuil, Garches, et GCO. Pour le bouton « Tous »…

Pour ce qui est de ma démarche de fonctionner avec l’enregistreur de macro, cela doit paraître un peu idiot de faire comme cela, mais j’ai du mal a faire la bascule et passer en code « propre », en même temps quand je vois ton code et le « mien » j’ouvre la fenêtre et je saute mdr.

Pourrais tu, svp, me décrire dans le code ce qui fait quoi comment ? Pour que je tente de corriger le truc et si possible continuer

Merci beaucoup

Didier

re

cela faisait l'onglet liste car je lançait la macro a partir de la feuille imprimer (activesheet)... j'avais pas fait attention que tu utilisais un bouton qui se trouvais sur l'onglet liste....

ci joint donc la macro commentée

et trois macros

une 3 mois qui imprime les infos des onglets 2 à 9

une 6 mois qui imprime les infos des onglets 10 à 17

et une tous qui fait de 2 à 17..

attention si tu ajoute de nouveaux onglets faudra changer le nombre de feuilles et attention a bien mettre les feuilles dans l'ordre (3 mois puis 6 mois....

Fred

un grand merci Fred,

tu as tout fait, ca tourne au poil, que dire de plus, a moi de decortiquer tout ca et tenter de me l'approprier, c'est un peu plus dur que les formules lol mais avec beaucoup de travail je devrais y arriver . en tout cas merci beaucoup et chapeau l'artiste

Cdt

Didier

Bonjour

pour repondre a ta question, non il n'est pas idiot de commencer avec l'enregistreur de macros. .. c'est comme ça que j'ai commencé. ... Maintenant c'est pas un code optimisé. ... et c'est la que le travail commence... cel m'arrive encore une fois de temps en temps de l'utiliser pour connaître la syntaxe d'une fonction .

fred

bonjour Fred,

j'ai trouvé une petite coquille et j'ai même trouvé la solution il manquait un next dans les "6mois" et "tous", ca commence a rentrer le code lol

merci encore

Didier

Arffff problème de copier/coller en voulant aller trop vite....

fred

pas de soucis Fred c'est formateur

Bonjour Fred et le forum

En voulant optimiser le fichier, je me retrouve à devoir faire cohabiter ton code et le mien et là je ne sais pas faire.

Pour expliquer un peu ce que je veux faire, à l'utilisation je me suis aperçu que certain collègues se perdait dans les onglets, donc pour simplifier l'affaire je me suis dit je masque tout et je ne fais apparaitre que l'onglet qui est intéressé, jusque-là tout fonctionne plutôt pas mal mais quand je veux imprimer bin le ca va plus du tout lol. Je n’arrive pas à faire en sorte de modifier ton code pour afficher masquer les onglets.

Ci joint mon fichier avec les modifications.

en vous remerciant

Cdt

Didier

Bonjour

de retour de vacances et de retour avec une connexion internet qui fonctionne ....

je prend connaissance de ton message

si il n'est pas trop tard voici une proposition

j'ai changé un peu la methode.

les boutons 3 mois /6 mois /tout affiche les feuilles ou pas

le bouton imprimer imprime que les données des feuilles visibles ...

a tester

fred

Bonjour Fred, comme toi je rentres de congés et je te souhaites d'en avoir bien profité

pour le fichier tu as fait un super boulot je t'en remercie beaucoup, je viens de tester en long, en large et rien a redire... si Merci

j'ai viré tout les petits icones qui chargeait trop la page avec ta methode d'affichage c'est simple clair et même sur un coup de fatigue je penses que les collegues devraient y arriver lol

une bonne reprise à toi

Didier

Rechercher des sujets similaires à "simplification code vba"