Choisir quelle pages à imprimer avec Vba Excel
Bonjour à tous,
Dans mon appli l'utilisateur clique sur un bouton et la feuille active est imprimée. Il a parfois 4 pages qui sortent alors qu'une seule contient des données. (au début car lorsque le tableau complet est rempli les 4 feuilles sont utiles
Est-ce qu'il existe un moyen en Vba pour que l'utilisateur puisse choisir quelle pages il veut imprimer ?
(page .. à page ..)
J'ai chercher (peut-être mal) mais je n'ai rien trouvé à ce sujet.
Merci par avance
Choisir les pages à imprimer
On peut forcer le nombre de page à imprimer ( voir le code ci dessous , on force l'impression de la page 1 à la page 3).
Je n'ai pas trouvé moyen de proposer une prévisualisation préalable du fichier par l'utilisateur pour le renseigner sur le nombre de page ( à part passer en mode préview et faire un scroll).
Je pense que le plus simple consiste à calculer le nombre de ligne et d'en déduire le nombre de page par calcul.
Code:
1 2 3 4 5 6 7 8 9
|
Sub Imprimer_qq_pages()
plage_debut = 1
plage_fin = 3
ActiveWindow.SelectedSheets.PrintOut From:=plage_debut, To:=plage_fin, Copies:=1, _
PrintToFile:=False, Collate:=True
End Sub |
Zone d'impression variable
J'utilise souvent la syntaxe range ( "CL").currentregion.rows.count pour déterminer le nombre de lignes.
Dans ton cas , il faut voir si le fichier peut comporter des lignes vides ?
Si on admet qu'il n' y a pas de ligne vide , tu peux faire
nb_ligne = range ( "A1").currentregion.rows.count
plage_debut = 1
si nb_ligne < 69 then plage_fin = 1
si nb_ligne > 68 et < 125 -> plage_fin = 2
ect , ect
les 2 variables plage_debut et plage_fin seront utilisés dans le code ci dessus.
Si il peux y avoir des lignes vides , il faut faire plusieurs tests sur les différentes pages pour voir leur occupation.