Macro d'impression avec userform

Bonjour,

j’ai une liste de 15 onglets ; je voudrais pouvoir sélectionner les onglets et imprimer les onglets sélectionnés en 1 x
j’ai créé un userform
'Sub AfficheChoixImpression()

Sub ImpressionChoix()

Impression.Hide

'Impression Feuille « Couverture »
If Impression.CheckBox1.Value = True Then
Sheets(« Couverture »).Select
Range(« Zone_d_impression »).Select
MenuImpression = Application.Dialogs(xlDialogPrint).Show(arg12:=1)
End If

If Impression.CheckBox2.Value = True Then
Sheets(« Compte de résultat_Charges »).Select
Range(« Zone_d_impression »).Select
MenuImpression = Application.Dialogs(xlDialogPrint).Show(arg12:=1)
End If

If Impression.CheckBox3.Value = True Then
Sheets(« Compte de résultat_Produits »).Select
Range(« Zone_d_impression »).Select
MenuImpression = Application.Dialogs(xlDialogPrint).Show(arg12:=1)
End If

If Impression.CheckBox4.Value = True Then
Sheets(« Compte de résultat synthétique »).Select
Range(« Zone_d_impression »).Select
MenuImpression = Application.Dialogs(xlDialogPrint).Show(arg12:=1)
End If

If Impression.CheckBox5.Value = True Then
Sheets(« Où est passé l’argent »).Select
Range(« Zone_d_impression »).Select
MenuImpression = Application.Dialogs(xlDialogPrint).Show(arg12:=1)
End If

If Impression.CheckBox6.Value = True Then
Sheets(« Quel est le résultat »).Select
Range(« Zone_d_impression »).Select
MenuImpression = Application.Dialogs(xlDialogPrint).Show(arg12:=1)
End If

If Impression.CheckBox7.Value = True Then
Sheets(« Ind-Quel est le résultat »).Select
Range(« Zone_d_impression »).Select
MenuImpression = Application.Dialogs(xlDialogPrint).Show(arg12:=1)
End If

If Impression.CheckBox8.Value = True Then
Sheets(« Sté-Quel est le résultat »).Select
Range(« Zone_d_impression »).Select
MenuImpression = Application.Dialogs(xlDialogPrint).Show(arg12:=1)
End If

If Impression.CheckBox9.Value = True Then
Sheets(« Conclusions »).Select
Range(« Zone_d_impression »).Select
MenuImpression = Application.Dialogs(xlDialogPrint).Show(arg12:=1)
End If
If Impression.CheckBox10.Value = True Then
Sheets(« Ind-Revenu dispo »).Select
Range(« Zone_d_impression »).Select
MenuImpression = Application.Dialogs(xlDialogPrint).Show(arg12:=1)
End If
If Impression.CheckBox11.Value = True Then
Sheets(« Sté-Revenu dispo »).Select
Range(« Zone_d_impression »).Select
MenuImpression = Application.Dialogs(xlDialogPrint).Show(arg12:=1)
End If
If Impression.CheckBox12.Value = True Then
Sheets(« Inventaire cultures »).Select
Range(« Zone_d_impression »).Select
MenuImpression = Application.Dialogs(xlDialogPrint).Show(arg12:=1)
End If
If Impression.CheckBox13.Value = True Then
Sheets(« Avances aux cultures »).Select
Range(« Zone_d_impression »).Select
MenuImpression = Application.Dialogs(xlDialogPrint).Show(arg12:=1)
End If
If Impression.CheckBox14.Value = True Then
Sheets(« Aides »).Select
Range(« Zone_d_impression »).Select
MenuImpression = Application.Dialogs(xlDialogPrint).Show(arg12:=1)
End If
If Impression.CheckBox15.Value = True Then
Sheets(« Stocks fourrage »).Select
Range(« Zone_d_impression »).Select
MenuImpression = Application.Dialogs(xlDialogPrint).Show(arg12:=1)
End If

If Impression.CheckBox16.Value = True Then
Sheets(« Autres produits »).Select
Range(« Zone_d_impression »).Select
MenuImpression = Application.Dialogs(xlDialogPrint).Show(arg12:=1)
End If
If Impression.CheckBox17.Value = True Then
Sheets(« Produits animaux »).Select
Range(« Zone_d_impression »).Select
MenuImpression = Application.Dialogs(xlDialogPrint).Show(arg12:=1)
End If
If Impression.CheckBox18.Value = True Then
Sheets(« Eléments financiers »).Select
Range(« Zone_d_impression »).Select
MenuImpression = Application.Dialogs(xlDialogPrint).Show(arg12:=1)
End If
Impression.Show
End Sub

j’ai un message d’erreur
image

Une idée ?

merci

Bonjour,
C’est pas à la vue de la macro que cela peut se résoudre.
De plus, trop de répétition d’argument
la plage peut être sélectionnée d’une autre façon

Place un classeur exemple avec seulement 3/4 onglets concernés sans données confidentielles
le problème sera plus vite résolu

Bonjour,

Voici le classeur avec 3 onglets et sans données confidentielles TEST_IMPRESSION.xlsm (31,1 Ko)

merci

Bonjour,

Voilà une esquisse de ton userform avec l’impression des onglets
A toi de l’adapter à ton projet
TEST_IMPRESSION.xlsm (79,1 Ko)

Bonjour,
Le fichier test fonctionne parfaitement
Quand je l’inclus dans mon classeur de travail, j’ai ce message :
image
puis
image
Une idée ?

J’ai trouvé en partie d’où venait le souci
maintenant j’en ai un autre …
image
image

Re,
Il faut que tu définisses tes plages de zone d’impression
choix de l’onglet
sélection de la plage à imprimer
Menu Affichage
Définir la sélection
sur chaque onglet, une seule fois

et le CAPTION des Checkbox doivent avoir le même nom que le nom des onglets.

Regarde mon modèle

Bonjour,

j’ai 3 onglets sur les 19 dont la macro ne fonctionne pas avec le même message au dessus ; pour autant j’ai défini la zone d’impression et vérifié les caractères des caption des checkbox

Je ne comprend pas pourquoi ça ne marche pas
Une idée ?

Re,
Avec mon classeur test ou le tien ?

avec le mien…
merci

Re,

Alors, soit que les noms que tu as mis en CAPTION dans les CheckBox ne sont pas correctes par rapport au noms des onglets
espace avant, après, accents
Est-ce que le NAME des CheckBox sont bien « CheckBox1 », « CheckBox2 », etc jusqu’à la fin
As-tu bien laissé comme nom « Zone d’impression » des feuilles

du coup j’ai copie collé le nom de l’onglet dans la caption sur les 3 qui me pose souci

ça a l’air de fonctionner cette fois

une affaire d’espace…

en tout cas merci

Bonjour,

j’ai fait exactement le même process sur mon nouveau projet en cours en prenant soin de bien nommé les CheckBox

et j’ai ce message

Auriez vous une idée svp ?

Re,

Comment as-tu nommez l’userform
image

image

Re
Regarde bien ce que j’ai mis en image
tu me montres le nom des modules, moi c’est celui des feuilles où se trouve l’userform
D’ailleurs ton module IMPRESSION doit-être renommé, car le conflit vient de là, même nom d’userform et même nom de module

j’ai bien deux noms différents
image

ça y est j’ai compris
il faut remplacer dans le code Impression par Imprimer

Et pourtant, dans le premier classeur fourni, tu avais bien nommé l’userform « Impression » :crazy_face:

VBA, c’est pas le tableur EXCEL, il est très pointilleux

Comme je dis souvent 95% des bugs se trouvent entre le dossier de la chaise et l’écran :grin: