Sub afdrukbereik()
'Wat ik ga doen is eerst naar de regel gaan waar ik
'kan zien hoeveel weken er zijn door constant een naar
'rechts te gaan net zo lang tot ik een lege cel tegen kom
'Vervolgens bewaar ik de positie. Dit doe ik om je de
'mogelijkheid te geven ook rijen er boven en er onder
'te selecteren.
'dit moet de regel zijn die als maar doorloopt in mijn
'voorbeeld B1
Range("B1").Select
'zolang hij nog niet leeg is opschuiven
While ActiveCell.Value <> ""
ActiveCell.Offset(0, 1).Select
Wend
'we zitten nu eigenlijk 1 cel te veel naar rechts, want hij is al leeg.
'dus we schuiven er 1 terug en slaan het nummer van deze kolom op.
ActiveCell.Offset(0, -1).Select
'ook al hebben bij ons de kolommen letters, excel zal ons het getal van de kolom teruggeven
Dim kolom As Integer
kolom = ActiveCell.Column
'Ook weet ik al dat je de laatste 12 weken wil tonen dus ik maak een variabele met deze 12
'weken aan, mocht je ooit een verandering willen weet je waar je dit kan doen.
Dim aantalweken As Integer
aantalweken = 12
'Nu moet ik nog weten op welke rij het afdrukken moet beginnen. Wellicht in de eerste rij
'zeg maar D1 en ik moet ook de laatste rij weten, bijvoorbeeld T20.
Dim eersterij As Integer
Dim laatsterij As Integer
eersterij = 1
laatsterij = 10
'Ik ga nu terug naar de cel A1, vanaf cel A1 weet ik dat ik EERSTERIJ -1 cellen naar benden
'moet tot en met LAATSTERIJ -1. Ook weet ik dat dit is vanaf onze opgeslagen kolom -1 naar rechts
'tot en met dat kolom -(aantalweken + 1) is. Van deze cellen maak ik een selectie en kan ik de
'printer opdracht geven deze cellen uit te printen
Range("A1").Select
'je krijgt nu iets te zien als Range("$D$1:$T$10).Select, dus laat je niet afschrikken
Range(ActiveCell.Offset(eersterij - 1, (kolom - aantalweken - 1)).Address + ":" + ActiveCell.Offset(laatsterij - 1, (kolom - 1)).Address).Select
'Deze code zal je printer aansturen en pakt je standaard printer. Natuurlijk kan je dit ook
'weglaten
Selection.PrintOut Copies:=1, collate:=True
End Sub