Bonjour,
La macro1 sert à imprimer uniquement les 32 dernières lignes + les trois premières.
Sub macro1()
Dim i%, ii%, a
ii = Sheets(1).Range("A65535").End(xlUp).Row
a = Split(Cells(1).CurrentRegion.Address, "$")
i = IIf(ii > 35, ii - 31, 1)
Sheets(1).PageSetup.PrintArea = "$" & a(1) & "$" & i & ":$" & a(3) & "$" & ii
Sheets(1).PrintOut preview:=True
End Sub
Maintenant, si malgré tout tu veux imprimer toutes les lignes (par lots de 35) là ça n'a rien à voir avec les macros, c'est juste un paramétrage de ta mise en page : il suffit d'ajuster manuellement ta mise en page pour avoir 35 lignes et pas une de plus.
Mais tout ceci n'a rien à voir avec le défilement ni avec l'affichage qui est uniquement un confort visuel (une nécessité pour la saisie)
pour cela on collera dans un module standart (Module1) la macro suivante :
Function iPlace()
i = Sheets(1).Range("A65535").End(xlUp).Row
iPlace = IIf(i > 12, i - 10, 2)
End Function
et dans le module de Sheets(1) :
Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
Range("A" & iPlace).Activate
ActiveWindow.ScrollRow = iPlace
End Sub
+ toujours dans le module de Sheets(1) :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count = 1 Then
iR = Target.Row: iC = Target.Column
If iR >35 Then ActiveWindow.ScrollRow = IR-32
End If
End Sub
Bref il faut mieux définir ta question : Affichage et Impression n'ont rien à voir ensemble.
A+