Zone dimpression variable

Bonjour à tous,

J'ai un fichier (voir ci-joint) donc je souhaite , à partir d'une macro, 'imprimer une zone variable de la feuille excel.

C'est à dire que j'écrive 10 lignes (A1 à K15) ou 295 lignes (A1 à K300) de mon tableau, je voudrais que l'impression puisse être "calibrée" automatiquement sur ce nombre de lignes (de A1 à K?) et ce en fonction des entrées de données uniquement. Dans l'exemple contenu dans le fichier, la zone d'impression devrait être étendue de A1 à K13.

Si quelqu'un d'en vous aurait la solution, j''apprécierais beaucoup la connaître.

Merci à l'avance pour votre précieuse collaboration.

Salutations,

Renaud

Bonsoir,

La zone d'impression sur Excel correspond à un nom.

Pour s'en convaincre, voir dans Onglet Formules - Gestionnaire de noms et on trouve le nom :

Zone_d_impression

On peut alors définir ce nom Zone_d_impression avec la fonction DECALER :

Nom : Zone_d_impression

Fait référence à :

=DECALER(RECAPITULATIF_TVISU!$A$1;;;NBVAL(RECAPITULATIF_TVISU!$C$6:$C$300)+5;10)

Je te laisse tester

@+

Bonsoir,

C'est quoi, portrait ou paysage ?

tu devrais commencer par formater la feuille pour impression,

format, titre, en-tête, pied de page etc...

Ensuite on te fera la macro pour le nombre de lignes

à te relire

Amicalement

Claude

Merci pour vos réponses.

Je vous transmets, ci-joint, le fichier légèrement mis en forme.

Le format d'impression est portrait. Les titres, en-tête, pied de page ont peu d'importance. Seul la macro qui permet de sélectionner une zone variable d'impression en fonction des données affichées est importante.

Merci à l'avance,

Salutations,

Renaud

Bonjour à tous,

vois si çà te va

Sub Imprime()
Dim N As Long
Dim I As Integer, Rep As Integer
    With ActiveSheet
        N = .Range("c65536").End(xlUp).Row  'dernière ligne
        With ActiveSheet.PageSetup
            .PrintTitleRows = "$1:$5"       'lignes titre
            .PrintArea = "b6:k" & N
        End With
        .ResetAllPageBreaks                 'efface sauts de pages existants
        .PrintPreview                       'aperçu
        Rep = MsgBox("On imprime ?", vbYesNo + vbCritical + vbDefaultButton2, "Impression")

        If Rep = vbYes Then
            .PrintOut
        End If
    End With
End Sub

thibo,

la plage dynamique n'est valable que si pas de lignes vides

Amicalement

Claude

Merci infiniment Claude pour ton aide.

La macro que tu m'as écrit fonctionne très bien.

Sincères salutations,

Renaud

Rechercher des sujets similaires à "zone dimpression variable"