Impression PDF avec conditions

Fermé
Gautier2110 - 19 oct. 2015 à 15:28
tyranausor Messages postés 3545 Date d'inscription jeudi 6 août 2009 Statut Membre Dernière intervention 1 avril 2022 - 22 oct. 2015 à 14:59
Bonjour à tous,

Dans le cadre de mon projet j'ai un tableau Excel avec plus de 2000 lignes synthétisant l'ensemble des réserves sur un projet de construction.

Elles sont classés par appartement de type (DA11 / DA12 / DA13...etc. En tout plus de 200 appartements et parties communes), par entreprise, par localisation et par date.

En bref, je n'y connais pas grand chose en macro, mais je souhaiterais me créer un petit gestionnaire d'impression. Quand par exemple je souhaite uniquement les réserves de mon plombier, je clique, je sélectionne mon entreprise, tac je lance l'impression.

Je souhaiterais pouvoir réaliser cette manipulation sans avoir à afficher à l'écran les réserves que je souhaite imprimer...

Une idée messieurs - dames ?

Merci d'avance.
A voir également:

1 réponse

tyranausor Messages postés 3545 Date d'inscription jeudi 6 août 2009 Statut Membre Dernière intervention 1 avril 2022 2 031
22 oct. 2015 à 14:59
Bonjour, je pense que tu peux créer un userform pour sélectionner tes critères (mais pas obligatoire) en plus de la macro.

Voici un code à adapter

Sub Enreg_Pdf()
'Macro Enreg_Pdf()
'Enregistre la feuille Archives du classeur en pdf. Nécessite une imprimante virtuelle comme PDFCreator.
'

'
d = Range("A65000").End(xlUp)
Sheets("Archives").Select
S1 = Range("A6").Value | <= définition des variables
S4 = Range("A" & d) |

Columns("D:J").Hidden = True |
Rows("1:3").Hidden = True | <= application des masques

With ActiveSheet.PageSetup
.CenterHeader = " texte à mettre au centre en en-tête" & S1 & " à " & S4
End With

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"nom_du_fichier.pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
From:=page de début, to:=page de fin, OpenAfterPublish:=False <= aperçu après impression (oui = true, non = false)
0