Option Explicit
Public Sub printBereik()
Const START_CEL As String = "A1" 'de startcel van het afdrukbereik
Const ZOEK_CEL As String = "C1" 'de cel met de zoekwaarde
Dim zoekGebied As Excel.Range 'het zoekgebied voor het tellen van zoekwaarde
Dim zoekWaarde As String 'de zoekwaarde voor grootte afdrukbereik
Dim aantalGevonden As Long 'het aantal keer dan zoekwaarde voorkomt
Dim afdrukBereik As String 'het te bepalen afdrukbereik
Dim afdrukRijen As Long 'het aantal rijen op het afdrukbereik
Dim afdrukKolommen As Long 'het aantal kolommen op het afdrukbereik
'Het zoekgebied instellen
Set zoekGebied = Range("C1:C5245")
'de zoekwaarde is de waarde van de zoekcel
zoekWaarde = Range(ZOEK_CEL)
'het aantal gevonden rijen
aantalGevonden = WorksheetFunction.CountIf(zoekGebied, zoekWaarde)
'de hoogte van het afdrukbereik = 17 rijen per gevonden waarde
afdrukRijen = aantalGevonden * 17
'13 kolommen breed
afdrukKolommen = 13
If afdrukRijen > 0 Then
'er zijn meer dan 0 afdrukrijen
afdrukBereik = Range(START_CEL).Resize(afdrukRijen, afdrukKolommen).Address
'het afdrukbereik bepalen:
ActiveSheet.PageSetup.PrintArea = afdrukBereik
Else
'0 rijen, gebruiker laten weten dat er niets gebeurd is
MsgBox "Het afdrukbereik kan niet worden bepaald!", vbInformation
End If
'naam zoekgebied uit geheugen halen
Set zoekGebied = Nothing
End Sub