• 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.

Automatisch afdrukbereik bepalen

Status
Niet open voor verdere reacties.

Timmiesch

Gebruiker
Lid geworden
14 nov 2007
Berichten
630
Is er een mogelijkheid automatisch het afdrukbereik te bepalen?

In het bereik A1:M1500 staan formules.
Het afdrukbereik is afhankelijk van het aantal ingevulde cellen
Voorbeeld is dat rij 100 ingevuld is maar vanaf rij 101 leeg is (door de formule)
Dan zou het afdrukbereik A1:M100 moeten zijn.

Is het groter dan moet het groter zijn.
Kan dit op een automatische manier? Of bladen waar geen informatie staat niet automatisch afdrukken?
 
probeer het volgende eens.
Let op hij print wel in 1x op de printer je kan dus geen printer kiezen:

Sub VariabelPrintbereik()

Dim lLaatsteRegel As Long

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

ActiveWindow.SelectedSheets.PrintOut


End Sub
 
bijgevoegd een bestand met een knop om te printen en het is nu mogelijk om de printer te selecteren mocht je meerdere printers willen gebruiken.
 

Bijlagen

  • Printen via vba.xls
    36,5 KB · Weergaven: 310
Code:
Sub Myrange()
ActiveSheet.Range("a1", Cells.Find(What:="*", After:=[a1], SearchDirection:=xlPrevious)).Name = "Myrange"
ActiveSheet.PageSetup.PrintArea = Range("myrange")
End Sub

gr wim
 
Het bestand van geep1980, met een andere manier om de laatste gevulde regel te bepalen.
 

Bijlagen

  • Printenviavba(1).xls
    41 KB · Weergaven: 252
Laatst gevulde regel bepalen in Excel t/m 2003:

Code:
Regel = [A65536].End(xlUp).Row

Laatst gevulde regel bepalen in Excel vanaf 2003:

Code:
Regel = [A1048576].End(xlUp).Row

Laatst gevulde kolom bepalen in Excel t/m 2003:

Code:
Kolom = [IV1].End(xlToLeft).Column

Laatst gevulde kolom bepalen in Excel vanaf 2003:

Code:
Kolom = [XFD1].End(xlToLeft).Column
 
Laatst bewerkt:
Aangezien het ganse bereik gevuld is met formules zal het zoeken naar de laatste cel steeds de onderste cel met formule weergeven als resultaat. Waar TS eerder op doelt is mi het vinden van de laatst cel waar de formule een resultaat weergeeft en daarop het printbereik baseren.
Probeer daarom onderstaande eens uit en kijk of dit in de buurt komt van je intentie.
Code:
Sub Set_Print_Area()
Dim lastCell As Range
Set lastCell = Columns(1).Find("*", [a1], , , , xlPrevious).Offset(1, 0)
Do Until lastCell.Value <> ""
Set lastCell = lastCell.Offset(-1, 0)
Loop
ActiveSheet.PageSetup.PrintArea = Range(Cells(1, 1), lastCell).Resize(, 13).Address
End Sub
 
@ Rudi,

Ik had de topic niet gevolgd vanaf het begin.
Heb ik nu wel gedaan en dan kom ik uit op de volgende oplossing.

De volgende oplossing kun je gebruiken zonder hulp van VBA:
Formule plaatsen in de formulebar en met CTRL+SHIFT+ENTER vastleggen in de cel.
Het maakt niet uit in welke cel de formule geplaatst wordt.

Plaats onderstaande formule om het adres van de laatst gevulde cel te vinden:
Code:
=ADRES(MAX(ALS(LENGTE(A1:F500)>0;RIJ(A1:F500);0));MAX(ALS(LENGTE(A1:F500)>0;KOLOM(A1:F500);0)))

Plaats onderstaande formules om respectievelijk de laatst gevulde regel en kolom te vinden:
Code:
=MAX(ALS(LENGTE(A1:F500)>0;RIJ(A1:F500);0))
=MAX(ALS(LENGTE(A1:F500)>0;KOLOM(A1:F500);0))

Hierna kun je met VBA de waarden uitlezen en gebruiken om het printbereik vast te leggen.

LET OP!!
Met een engelstalige versie van Excel moet eea aan de formules aangepast worden.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan