Zone d'impression

Bonjour tout le monde,

Je cherche à définir automatiquement une zone d'impression.

Mes données sont toutes dans les colonnes A à L

Il convient de déterminer la dernière ligne.

Ce que fait le début de ma macro en donnant une valeur à ma variable "lig"

Le code Range("A1" & ":L" & lig).Select Fonctionne.

Le code ActiveSheet.PageSetup.PrintArea = Range(Cells(1, 1), Cells(20, 12)) fonctionne

Le code ActiveSheet.PageSetup.PrintArea = Range(Cells(1, 1), Cells(lig, 12)) ne fonctionne pas.

J'ai essayé différentes syntaxe, sans succès...

Dans le code ci-dessous, aucune des lignes précédées d'une ' ne fonctionne...

Sub Zone_impression()
'
Dim lig As Long, a As Range
'

For Each cell In Sheets("Feuil3").Range("A1:L40")
    If cell.Value <> "" Then
        lig = cell.Row
    End If
Next cell
     Range("A1" & ":L" & lig).Select
    'Range(Cells(1, 1), Cells(lig, 12)).Select
    'a = Range("A1" & ":L" & lig).Value
    'a = Range(Cells(1, 1), Cells(lig, 12)).Value
    'ActiveSheet.PageSetup.PrintArea = Range(Cells(1, 1), Cells(lig, 12))
    'ActiveSheet.PageSetup.PrintArea = "A1:L & lig"
    'ActiveSheet.PageSetup.PrintArea = a
    ActiveSheet.PageSetup.PrintArea = "A1:L20"
End Sub

Une idée?

Merci

Bonjour,

Essaie ainsi (pas optimisé à priori).

PrintArea attend un string (chaîne texte).

Cdlt.

Sub Zone_impression()
Dim lig As Long, cell As Range, rng As Range
    For Each cell In Sheets("Feuil1").Range("A1:L40")
        If cell.Value <> "" Then
            lig = cell.Row
        End If
    Next cell
    Set rng = Range("A1" & ":L" & lig)
    ActiveSheet.PageSetup.PrintArea = rng.Address
End Sub

Réponse hyper rapide!!

Merci Jean-Éric

Rechercher des sujets similaires à "zone impression"