Mise en page automatique

Bonjour ,

je voulais savoir si il est possible de faire un code qui permette une mise en page (zone d'impression) automatique à chaque fois que j'ouvre ma page ,

J'ai un tableau qui est de taille variable et je voudrais que la zone d'impression s'adapte au tableau seulement sur les lignes car les colonnes ne changent pas .

Je pense qu'il faut utiliser cela mais je n'arrive pas a remplacer la page par une plage variable

ActiveSheet.PageSetup.PrintArea = "$A$1:$J$34"

Cordialement

Bonjour,

Définir ta zone d'impression uniquement sur les colonnes n'est pas suffisant ?

Sinon un fichier exemple serait le bienvenu.

eric

Bonjour,

Non ce n'est pas suffisant car je fais par la suite un lien avec autocad ,

j'ai joint un fichier exemple.

cordialement

et merci de votre aide

91fichierexemple.xlsm (15.24 Ko)

Bonjour,

Essaie comme cela

Private Sub Worksheet_Activate()
Dim Plage As Range, C As Range
    Application.ScreenUpdating = False
    Set Plage = Range("A1:B" & Range("B" & Rows.Count).End(xlUp).Row)
    For Each C In Plage.Resize(, 1)
        If C.Value = "" Then
            C.EntireRow.Hidden = True
        Else
            C.EntireRow.Hidden = False
        End If
    Next C
    ActiveSheet.PageSetup.PrintArea = Plage.Address
End Sub

A+

bonjour,

merci pour votre réponse .

En faite le tableau exemple devra être copié sur une autre feuille , mais sans les lignes masqué , et sur cette feuille devra apparaitre le code qui prend la zone d'impression , donc sur cette feuille il n'y aura pas de ligne masqué il me faut juste le code qui me permettre de définir la zone d'impression automatiquement .si c'est possible bien sur

cordialement

C'est le même code à placer dans le module de la feuille concernée (sans la partie qui masque les lignes).

Exemple pour un zone d'impression des colonnes A et B.

Private Sub Worksheet_Activate()
Dim Plage As Range, C As Range
    Application.ScreenUpdating = False
    Set Plage = Range("A1:B" & Range("B" & Rows.Count).End(xlUp).Row)
    PageSetup.PrintArea = Plage.Address
End Sub

A+

Rechercher des sujets similaires à "mise page automatique"