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

Variabel printbereik dmv macro

Status
Niet open voor verdere reacties.

sjoerd81

Gebruiker
Lid geworden
24 jul 2009
Berichten
161
Hallo,

Ik had deze vraag al eens op het VBA forum gesteld maar helaas zonder het gewenste resultaat.

Ik dien een aantal ontvangstbevestigingsformulieren, voor verschillende personen, uit te printen. Dit aantal kan variëren van 1 tot max 25 personen.Dus bij drie personen heb ik drie printjes nodig en bij vijftien personen vijftien printjes (geen kopieën!) In de kolommen G tm W staan deze formulieren.
Met de VLOOKUP functie bepaal ik in cel Z2 het afdrukbereik.

Vooralsnog heb ik deze macro:

Sub Printen()
ActiveSheet.PageSetup.PrintArea = Range(Z2)
End Sub

Deze macro is niet volledig. Mijn VBA kennis is echter van een dusdaning niveau dat ik hier niet uit kom. Wie kan mij helpen met deze macro?

Alvast bedankt
Sjoerd
 

Bijlagen

Bedankt voor de link, maar ik kan er eigenlijk niet veel mee :confused:. Iemand nog ideeen?
 
Niemand?

De file is inmiddels al wat aangepast. Tot dusverre heb ik deze (erg lange) code:

Sub Printen()
If Range("AB26").Value = 1 Then
ActiveWindow.SelectedSheets.PrintOut
Range("$H$1:$X$71").Select
If Range("AB26").Value = 2 Then
ActiveWindow.SelectedSheets.PrintOut
Range("$H$1:$X$142").Select
If Range("AB26").Value = 3 Then
ActiveWindow.SelectedSheets.PrintOut
Range("$H$1:$X$213").Select
If Range("AB26").Value = 4 Then
ActiveWindow.SelectedSheets.PrintOut
Range("$H$1:$X$284").Select
If Range("AB26").Value = 5 Then
ActiveWindow.SelectedSheets.PrintOut
Range("$H$1:$X$355").Select
If Range("AB26").Value = 6 Then
ActiveWindow.SelectedSheets.PrintOut
Range("$H$1:$X$426").Select
If Range("AB26").Value = 7 Then
ActiveWindow.SelectedSheets.PrintOut
Range("$H$1:$X$497").Select
If Range("AB26").Value = 8 Then
ActiveWindow.SelectedSheets.PrintOut
Range("$H$1:$X$568").Select
If Range("AB26").Value = 9 Then
ActiveWindow.SelectedSheets.PrintOut
Range("$H$1:$X$639").Select
If Range("AB26").Value = 10 Then
ActiveWindow.SelectedSheets.PrintOut
Range("$H$1:$X$715").Select
If Range("AB26").Value = 11 Then
ActiveWindow.SelectedSheets.PrintOut
Range("$H$1:$X$786").Select
If Range("AB26").Value = 12 Then
ActiveWindow.SelectedSheets.PrintOut
Range("$H$1:$X$857").Select
If Range("AB26").Value = 13 Then
ActiveWindow.SelectedSheets.PrintOut
Range("$H$1:$X$928").Select
If Range("AB26").Value = 14 Then
ActiveWindow.SelectedSheets.PrintOut
Range("$H$1:$X$1000").Select
If Range("AB26").Value = 15 Then
ActiveWindow.SelectedSheets.PrintOut
Range("$H$1:$X$1072").Select
If Range("AB26").Value = 16 Then
ActiveWindow.SelectedSheets.PrintOut
Range("$H$1:$X$1144").Select
If Range("AB26").Value = 17 Then
ActiveWindow.SelectedSheets.PrintOut
Range("$H$1:$X$1215").Select
If Range("AB26").Value = 18 Then
ActiveWindow.SelectedSheets.PrintOut
Range("$H$1:$X$1287").Select
If Range("AB26").Value = 19 Then
ActiveWindow.SelectedSheets.PrintOut
Range("$H$1:$X$1358").Select
If Range("AB26").Value = 20 Then
ActiveWindow.SelectedSheets.PrintOut
Range("$H$1:$X$1430").Select
If Range("AB26").Value = 21 Then
ActiveWindow.SelectedSheets.PrintOut
Range("$H$1:$X$1502").Select
If Range("AB26").Value = 22 Then
ActiveWindow.SelectedSheets.PrintOut
Range("$H$1:$X$1574").Select
If Range("AB26").Value = 23 Then
ActiveWindow.SelectedSheets.PrintOut
Range("$H$1:$X$1646").Select
If Range("AB26").Value = 24 Then
ActiveWindow.SelectedSheets.PrintOut
Range("$H$1:$X$1718").Select
If Range("AB26").Value = 25 Then
ActiveWindow.SelectedSheets.PrintOut
Range("$H$1:$X$1790").Select
End If
End Sub
 
Je kunt het bereik ook bepalen mbv de waarde in AB26

Code:
    Range("$H$1:$X$" & Range("AB26").Value * 71)

Met vriendelijke groet,


Roncancio
 
Met deze macro?

Sjoerd,

doet dit wat je verwacht/hoopt?
 

Bijlagen

@ Roncancio

Dit ziet er al een stuk handiger uit :). Ik heb nu de volgende code, maar hij doet niet wat ik wil :(:

Sub Printen()
Range("$H$1:$X$" & Range("AB26").Value * 71)
ActiveWindow.SelectedSheets.PrintOut
End Sub


@ Haije

Nee, helaas niet. Naast het feit dat ik het bestand eerst nog moet opslaan, worden alle bladen geprint, wat juist niet de bedoeling is.:confused:
 
Sub Printen()
Range("$H$1:$X$" & [AB26] * 71).PrintOut
End Sub
 
:thumb: Warme bakkertje.

Ik krijg nu alleen de melding "save as", waarna het als pdf bestand wordt geopend. Dat hoeft niet. Zou je het nog even willen finetunen :D
 
Staat de juiste printer als standaard ingesteld want deze melding heeft eigenlijk niets te maken met de gegeven code ?
 
Klopt Warme bakkertje ik heb het aangepast.

Het werkt nu! Helemaal top, geweldig. Jiha :D

Allen hartelijk dank voor jullie bijdrage:thumb::thumb:
 
Deze dan?

Sjoerd81

deze doet volgens mij wat je vraagt:

afdrukken afhankelijk van het afdrukbereik in Z2

|-|aije
 

Bijlagen

@ Haije: het afdrukbereik wordt nu correct bepaald. Alleen wordt dit bereik nog niet automatisch geprint.

Mijn issue is echter al opgelost. Bedankt voor je bijdrage:thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan