• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Variabele print area

Status
Niet open voor verdere reacties.

verluc

Gebruiker
Lid geworden
29 mei 2009
Berichten
540
Heb een sheet waarbij dagelijks gegevens worden bijgevoegd.
Wou graag een print-macro ontwerpen waar altijd de laatste 20 regels (rijen) worden afgedrukt.
Thans moet ik telkens manueel de print-area aanpassen en is mij te omslachtig.
Iemand een idee of voorbeeld.
Met dank
 
Hoe kom ik in deze aan de voorwaarde van laatste 20 regels ?
Met deze macro wordt alles geselecteerd.
Met dank.
 
Zoek de laatste regel en doe dit -20 voor het begin en de laatste regel voor het eind van range.
Range(A=laatste regel-20):Range(H=laatste regel).printout

Simpel voorgesteld
 
bv.
Code:
Sub hsv()
With ActiveSheet
 .PageSetup.PrintArea = .Range(.Cells(.UsedRange.Rows.Count - 19, 1), .Cells(.UsedRange.Rows.Count, 8)).Address
End With
End Sub
 
Hello HSV,

Uw code werkt inderdaad, doch drukt enkel de "gridlines" af en geen tekst.
Enig idee waarom ?
 
Plaats een Excel bestandje; er staan vast formules zonder retour-waarde.
 
Enkel deze formule staat in kolom E, en dit voor elke rij :

=ALS(OF(D71<>0;C71<>0);E70-C71+D71;"")

Met dank.
 
Test dit eens, wel de kolom letters aanpassen naar je eigen situatie.
PrintPreview aanpassen naar Printout als je wil printen.



Code:
Sub Excelamateur() 'Print laatse 20 regels van kolom A tot Kolom X
lastrow = Range("A" & Rows.Count).End(xlUp).Row

  With ActiveSheet    
   .Range("A" & lastrow - 19 & ":" & "X" & lastrow).PrintPreview
  End With
  
End Sub
 
Laatst bewerkt:
lijkt me voldoende:

Code:
Sub M_snb()
    sheet1.Cells(Rows.Count, 1).End(xlUp).Offset(-20).Resize(20, 10).PrintOut False
End Sub

De printarea aanpassen is geheel niet nodig; selecteer het af te drukken bestand en printen maar....
 
Laatst bewerkt:
Als jouw bestand vol staat met formules die zoals HSV al opmerkte geen retourwaarde, of misschien iets beter, een op het oog 'lege' cel opleveren dan werken de aangedragen oplossingen niet. In alle gevallen wordt er gekeken naar de laatst gevulde cel.

Je zal dus moeten zoeken naar de laatste cel die ongelijk is aan ""

Dan kom ik op zoiets

Code:
Sub VenA()
For j = Sheets(1).Cells(Rows.Count, 5).End(xlUp).Row To 20 Step -1
    If Cells(j, 5) <> "" Then
        Sheets(1).Cells(j, 1).Offset(-19).Resize(20, 9).PrintPreview
        Exit Sub
    End If
Next j
End Sub
 
Je zou de code van @snb moeten laten uitvoeren op kolom C of D.
 
Voor alle medewerkenden aan deze vraag, mijn hartelijke en welgemeende dank.
Uiteindelijk heb ik gekozen voor de oplossing van SNB, de specialist in one-liners.
Zet dus deze vraag als 'opgelost'
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan