Impression suivant quantite

Bonjour à tous

Je souhaiterais imprimer un tableau déjà formaté (Zone d'impression définie de A1:H308) et dont le nombre de valeurs de la

colonne F:F varie !

Actuellement, si le champs $F$9:$F$308 est entièrement complètée, le nombre de page à imprimer est de 6, mais si le nombre est moindre, il ne faut imprimer que le nombre de pages nécéssaires ! (Tout en conservant la page complète des dernières valeurs trouvées) soit :

SI(NBVAL($F$9:$F$308)<52 alors on imprime uniquement la page 1

SI(NBVAL($F$9:$F$308)<103 alors on imprime uniquement les page 1 et 2

SI(NBVAL($F$9:$F$308)<154 alors on imprime les pages de 1 à 3

SI(NBVAL($F$9:$F$308)<205 alors on imprime les pages de 1 à 4

SI(NBVAL($F$9:$F$308)<256 alors on imprime les pages de 1 à 5

Sinon SI(NBVAL($F$9:$F$308)>255 alors on imprime les pages de 1 à 6

Cette macro pourrait s'appliquer à toutes les feuilles du classeurs (Noms différents) et dont la structure est la même (A1:H308)

Ci joint fichier pour une meilleure compréhension

Merci beaucoup de votre aide

18impressionpages.zip (31.69 Ko)

Bonjour,

Un code à tester :

Sub imprimer()
    'rechercher la dernière cellule de la dernière page non vide
    derCel = WorksheetFunction.Ceiling_Precise(Range("F" & Rows.Count).End(xlUp).Row, 51) + 8
    Range("A8:H" & derCel).PrintOut copies:=1
End Sub

Bonjour Raja,

Je viens de tester et le changement du nombre de pages à imprimer ne s'opère pas au bon moment

mais c'est en bonne voie !

A partir de 44 numéro en colonne F, il passe déjà à 2 pages

Bien cordialement

Re,

Envoi ton fichier à nouveau avec la macro incluse. Car je n'ai pas de problème.

Voilà le fichier avec la macro !

A ce niveau de remplissage, il imprime déjà 2 pages !

Bonne nuit

18impressionpages.zip (36.92 Ko)

Re,

Essaye ce code suivant :

Sub imprimer()
    'rechercher la dernière cellule de la dernière page non vide
    derCel = WorksheetFunction.Ceiling(Range("F" & Rows.Count).End(xlUp).Row - 8, 51) + 8
    Range("A8:H" & derCel).PrintOut copies:=1
End Sub

Bonjour MJC55, (Raja)

à mon avis la méthode "bêtement empirique" est certainement la plus adaptée...

Sub ImprimerBis()
Dim derLig As Integer

    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        .PrintTitleRows = "$1:$8"
        .PrintTitleColumns = ""
    End With
    Application.PrintCommunication = True
    derLig = 9 + Range("varCombien")

    Select Case derLig
        Case Is <= 59
            Range(Cells(9, 1), Cells(59, 8)).Select
        Case Is <= 110
            Range(Cells(9, 1), Cells(110, 8)).Select
        Case Is <= 161
            Range(Cells(9, 1), Cells(161, 8)).Select
        Case Is <= 212
            Range(Cells(9, 1), Cells(212, 8)).Select
        Case Is <= 263
            Range(Cells(9, 1), Cells(263, 8)).Select
        Case Is <= 308
            Range(Cells(9, 1), Cells(308, 8)).Select
    End Select
    Selection.PrintOut
End Sub

où "pour les tests" j'ai créer une cellule nommée varCombien qui a pour formule =NBVAL(L9C6:L308C6)

à tester/valider ! ?

je pense que la solution peut s'adapter facilement

MJC55 a écrit :

Cette macro pourrait s'appliquer à toutes les feuilles du classeurs (Noms différents) et dont la structure est la même (A1:H308)

Affaire rondement menée !! 3 lignes de programme et le tour est joué !!

ça fonctionne à souhait

Raja, merci beaucoup de ton aide

Bien cordialement

Merci également à Andréa73 pour son complément

Rechercher des sujets similaires à "impression suivant quantite"