Zone d'impression

Bonjour,

Je voudrais sélectionner les paramètres de l'impression avec une macro.

- soit imprimer feuille.

- soit imprimer classeur

- soit imprimer la sélection active.

Merci d'avance de votre réponse.

Salutations

Marco25

Bonjour,

Pour définir une zone d'impression utilises le bout de code

Worksheets("Feuil1").PageSetup.PrintArea = (zone à imprimer)

Bonjour Jacky,

Merci de la réponse.

j'avais déjà essayé, mais mon problème, c'est que ma zone d'impression varie suivant les résultats, et c'est cette variation que je n'arrive pas à indexer.

' ActiveSheet.PageSetup.PrintArea = "$E$6:$G$66", je voudrais index la valeur 66.

Merci d'avance de votre réponse

Marco25

Bonjour,

Voici une proposition :

Sub Imprimer_Selection_Dynamique()
    Dim choix As Integer
    Dim derniereLigne As Integer
    Dim zoneImpression As String

    ' Trouver la dernière ligne utilisée dans la colonne E (ou une autre colonne clé)
    derniereLigne = Cells(Rows.Count, 5).End(xlUp).Row ' 5 = Colonne E

    ' Définir dynamiquement la zone d'impression
    zoneImpression = "$E$6:$G$" & derniereLigne
    ActiveSheet.PageSetup.PrintArea = zoneImpression

    ' Demander à l'utilisateur ce qu'il veut imprimer
    choix = MsgBox("Voulez-vous imprimer :" & vbCrLf & _
                   "1. La feuille active ?" & vbCrLf & _
                   "2. Tout le classeur ?" & vbCrLf & _
                   "3. La sélection active ?", vbQuestion + vbYesNoCancel, "Impression")

    Select Case choix
        Case vbYes ' Feuille active avec zone d'impression mise à jour
            ActiveSheet.PrintOut
        Case vbNo ' Classeur entier
            ThisWorkbook.PrintOut
        Case vbCancel ' Sélection active
            If Not Selection Is Nothing Then
                Selection.PrintOut
            Else
                MsgBox "Aucune sélection active.", vbExclamation, "Erreur"
            End If
    End Select
End Sub

Bonsoir,

Merci TrNizar de ta réponse, cela ma dépanné.

Marco25

Bonsoir à tous,
en passant...

Vous avez aussi CurrentRegion si vous voulez imprimer une plage donnée, il suffit de connaitre une cellule "certainement" dans la plage :
Range("E6").CurrentRegion
ou bien .UsedRange, qui détecte la plage de cellules utilisées sur la feuille

@ bientôt

LouReeD

Rechercher des sujets similaires à "zone impression"