Print bereik VBA

  • Onderwerp starter Onderwerp starter bgvv
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

bgvv

Gebruiker
Lid geworden
21 aug 2007
Berichten
11
Beste mensen,

Ik zit met een probleem dat te maken heeft met het Printbereik ( PrintArea) in VBA in Excel.
'
Het probleem is dat ik een bepaald bestand wil afdrukken d.m.v macro's en knoppen
maar het aantal regels in dit bestand is variabel.
Weet iemand hoe ik een printbareik kan defineren dat groter wordt als ik
een regel toe voeg en weer kleiner als ik er een regel uit haal.

Statisch lukt het me wel
maar het variabel krijgen is het probleem.

Bij voorbaat dank

Berend van Veenendaal
 
Berend

hier is een voorbeeldje van mij:

Code:
Sub VariabelPrintbereik()

    Dim lLaatsteRegel As Long
    
    lLaatsteRegel = Range("A" & Rows.Count).End(xlUp).Row
    
    ActiveSheet.PageSetup.PrintArea = Range("A1:H" & lLaatsteRegel).Address(1, 1)

End Sub

Wigi
 
Sub PrintNoord()

Range("B:C,I:I").Select
Range("I1").Activate
Selection.EntireColumn.Hidden = True

ActiveSheet.PageSetup.PrintArea = "$A$11:$K15"
Sheets("Noord").PrintOut

Columns("A:L").Select
Selection.EntireColumn.Hidden = False
Range("A10").Select

End Sub

dit is wat ik tot nu toe heb
Het gaat dus om de middelste alinea

Het gaat om een bestand waarbij dmv andere macro's regels toegevoegd en weg geschreven
kunnen worden
aan de hand hiervan moet het printbereik aangepast worden

@WIGI wat bedoel je precies hiermee? Range("A" & Rows.Count).End(xlUp).Row
 
Laatst bewerkt:
Wat van het printbereik:

"$A$11:$K15"

is variabel?

En hoe kan bepaald worden wat dan de juiste cel is?
 
Het regel nummer 15
in K15 is variabel

dat kan dus 14 en k16 etc etc worden

als er 1 regel wordt toe gevoegd wordt het dus k16

of bedoel je dat niet


Berend
 
Dat bedoel ik wel ;)

En hoe zou jij in Excel zelf nagaan of het 14, 15, 16, ... is?
 
ik zelf zou het doen door te kijken:)

maar het lijtk me logisch om een variabele teller te maken en die inte stellen op 15
(regelnummer)

en deze teller 1 op te hogen als ik een regel toe voeg
en 1 te verminderen als ik weer een regel verwijder

zit zelf nu te denken
om in TisWorkboek

Sub laatsteRegelNoord()
Dim laatsteRegel As Long

laatsteRegel = Range("K15")
End Sub

zoiets neer te zetten
en dan bij sub Voegtoe()
en bij sub Verwijder()

ThisWorkbook.laatsteRegelNoord Shift:=x1Down
zoiets te zetten maar die regel werkt niet
 
En is het niet mogelijk om bv. in de K65536 te gaan "staan", en dan Ctrl-pijltje naar boven te doen. Kom je dan uit bij de juiste rij?

Of iets dergelijks.

Of kan je mss in een bepaald bereik iets tellen zodat je daaruit kan afleiden hoeveel rijen het zijn?
 
nee dat werkt volgens mij niet
hmzz

maar iig bedankt
ik ga nog even verder puzelen

Berend
 
nee dat werkt volgens mij niet
hmzz

maar iig bedankt
ik ga nog even verder puzelen

Berend

Je kan zeker met VBA code werken, en met een publieke variabele waarin het aantal rijen bijgehouden wordt, maar dat is echt wel een pak moeilijker dan de voorstellen die ik al gedaan heb.
 
Weet iemand hoe ik een sub
in ThisWorkboek

in aan andere sub in module 1 kan aanroepen?

miss dat ik er dan uit kan komen

Berend
 
Werk eens omgekeerd.

Algemene modules komen in een module.

Die kan je desgevallend aanroepen voor een gebeurtenis (event) in ThisWorkbook.
 
Ik heb nu dit zeg maar


ActiveSheet.PageSetup.PrintArea = Range("$A$11:K" &laatsteRegel)


en laatse regel heb ik in Module 1 gedefineerd
in sub laatsteRegelNoord


hoe kan ik die aan roepen
want denk niet dta hij hem automatisch ziet

Berend
 
de code hierin is:


Sub laatsteRegelNoord()
Dim laatsteRegel As Long

laatsteRegel = Range("K15")
End Sub


sorry voor late reactie
ik was gister afwezig

groeten berend
 
Probeer dit:

Eerst gebruik je dit:

Code:
Sub laatsteRegelNoord()
    laatsteRegel = Range("K15").Row
End Sub

en dan zet je BOVENAAN in een module:

Code:
Public laatsteRegel As Long

Alleen begrijp ik die Range("K15") niet zo goed. Is dat altijd 15 als laatste regel?

Wigi
 
Nee dat is juist het probleem
op dit moment is dat de laatste regel
maar die kan omlaag en omhoog gaan
naar gelang je iets toevoegd of verwijderd

Berend
 
Zoiets is toch al ontzettend veel op het forum gekomen... :(

Code:
laatsteRegel = Range("K" & Rows.Count).End(xlUp).Row
 
ja Zoiets snap ik
maar dan moet ik dus ergens een teller bijhouden
en steeds aanroepen

die teller moet volgens mij in Workbookstaan
omdat hij op meerdere plekken moet kunnen worden aan geroepen
de vraga is hoe ik dat dus doe
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan