Macro pour imprimer une sélection de pages de différents onglets classeur Excel [Résolu]

Signaler
Messages postés
58
Date d'inscription
vendredi 1 mars 2013
Statut
Membre
Dernière intervention
16 juillet 2020
-
Messages postés
58
Date d'inscription
vendredi 1 mars 2013
Statut
Membre
Dernière intervention
16 juillet 2020
-
Bonjour, 
Je suis débutante en VBA et j'ai besoin de votre aide si vous voulez bien.
J'ai un classeur Excel entre autres 14 onglets. Chacun de ces 14 onglets porte le nom d'un établissement et comporte les bons de livraison correspondants (pour certains : midi et soir de lundi à dimanche , pour d'autres: midi et soir de lundi à vendredi , pour d'autres :seulement le soir du lundi au dimanche etc... 

Mon idée est de rendre moins chronophage l'impression de tous ces bons de livraison grâce à des boutons de commande Activex.
J'ai 7 boutons de commande (1 par jour : lundi, mardi....) (placés sur la feuille 2 en début de classeur).
Chaque bouton doit pouvoir imprimer les pages correspondant au jour attendu
(par exemple: en cliquant sur le bouton lundi, imprimer tous les bons de livraison correspondant à lundi (midi et soir confondus)

J'ai déjà créé les macros avec l'enregistreur de macros.
Les sélections à imprimer sont déjà renseignées mais l'impression ne marche pas ("l'imprimante indique un état d'erreur")

Voici la macro que j'ai enregistrée avec l'enregistreur de macros

Sub Imprimer_Lundi()
'
' Imprimer_Lundi Macro
'
'
Sheets("BL ETABLISSEMENT 1").Select
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=2, Copies:=1, Collate _
:=True, IgnorePrintAreas:=False
Sheets("BL ETABLISSEMENT 2").Select
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=2, Copies:=1, Collate _
:=True, IgnorePrintAreas:=False
Sheets("BL ETABLISSEMENT 3").Select
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate _
:=True, IgnorePrintAreas:=False
Sheets("BL ETABLISSEMENT 4").Select
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate _
:=True, IgnorePrintAreas:=False
Sheets("BL ETABLISSEMENT 5").Select
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate
:=True, IgnorePrintAreas:=False
.............................................................etc jusqu'à ETABLISSEMENT 14
End Sub


Voici la macro correspondant au bouton que j'ai renommé LUNDI :

Private Sub CommandButton1_Click()
'
' Imprimer_Lundi Macro
'

'
etc...c'est le même contenu que la macro précédente
End Sub

Pouvez-vous m'aider svp ?

Merci beaucoup










Configuration: Windows / Edge 81.0.416.81

4 réponses

Messages postés
12720
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 octobre 2020
707
bonjour,
merci d'utiliser les balises de code quand tu postes du code: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code (en précsiant "basic" pour du vba)
quand et sous quelle forme reçois-tu ce message d'erreur?
vers quelle imprimante imprimes-tu?
Messages postés
58
Date d'inscription
vendredi 1 mars 2013
Statut
Membre
Dernière intervention
16 juillet 2020

Bonjour yg-be
Je veillerai à l'avenir à utiliser les balises (je ne connaissais pas).
- Le message apparaît lorsque je lance l'impression avec les boutons par exemple lundi.
- Le message apparaît sous forme de fenêtre en bas à droite de l'écran d'abord "Erreur d'impression sur Brother MFC-J5330DW" puis aussitôt "L'imprimante indique un état d'erreur".
- J'imprime sur l'imprimante citée ci-dessus
Simultanément à l'apparition de ces fenêtres d'erreur, l'ordi travaille comme si les pages sélectionnées étaient recherchées.
En consultant la file d'attente de l'imprimante, je constate sur la dernière ligne des documents attendus Erreur-Impression en cours. C'est le seul document qui a une taille de 2,5Mo/5,26Mo alors que les 14 autres ont une taille classique (2,68Mo ou 5,22Mo)
Messages postés
12720
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 octobre 2020
707
donc on dirait que ton code s'exécute bien, sans être interrompu.
>
Messages postés
12720
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 octobre 2020

Si le code est juste je suis contente par contre j'ignore ce qui peut bloquer .
Est-ce que si des onglets sont masqués et ne font pas partie du code ça peut perturber l'impression ?
Par ailleurs , j'ai renommé le bouton Lundi ça n'est pas gênant ?
Private Sub CommandButton1_Click()
'
' Imprimer_Lundi Macro
'
Sinon est-ce que le nombre d'étapes n'est pas trop lourd pour ce code ?
Messages postés
12720
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 octobre 2020
707 > Princesse82
l'imprimante a-t'elle bien fonctionné quand tu as enregistré la macro?
qu'est-ce qui a changé entre-temps?
Messages postés
58
Date d'inscription
vendredi 1 mars 2013
Statut
Membre
Dernière intervention
16 juillet 2020

Bonjour yg_be,
Le problème était bien l'imprimante : une impression d'une simple feuille, sans macro, ne marchait pas non plus. Je n'aurais jamais pensé à ça en tout cas merci beaucoup !!!
Est-ce que tu pourrais m'aider pour un dernier point stp ?
Je voudrais intégrer un aperçu avant impression à chacun de mes boutons (lundi, mardi...)
J'ai cherché sur internet, j'ai vu beaucoup de choses pour une feuille, pour un classeur mais pas pour une sélection de feuilles comme dans mon cas
J'ai trouvé le code suivant :
Sub Apercu_Impression()
'Aperçu avant impression
Application.Dialogs(xlDialogPrintPreview).Show
End Sub

A priori il faut le copier dans un module du VBE mais je ne sais pas l'utiliser pour le relier à la macro Imprimer_Lundi par exemple.
Aurais-tu une idée ?
Merci beaucoup
Messages postés
12720
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 octobre 2020
707
je ne vois pas comment ajouter un seul aperçu de l'ensemble des 14 impressions.
Messages postés
58
Date d'inscription
vendredi 1 mars 2013
Statut
Membre
Dernière intervention
16 juillet 2020

Alors tant pis. Merci quand même pour ton aide. (j'ai noté le sujet résolu).