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

Afdrukken bereik volgens voorwaarde.

Status
Niet open voor verdere reacties.

danny147

Terugkerende gebruiker
Lid geworden
29 apr 2007
Berichten
4.744
Beste, ;)

Graag zou ik een afdrukbereik willen bepalen als hij aan een bepaalde voorwaarde voldoet

Op Blad1 moet het afdrukbereik B6:F100 zijn als er in cel B6 of in B7 een waarde staat.
Het bereik op Blad1 F101:K200 moet ook afgedrukt worden.
Op Blad2 moet het afdrukbereik B6:F100 zijn als er in cel B5O of in B51 een waarde staat.

Het liefst op 1 blad afdrukken per afdrukbereik.

Heb gekeken naar de volgende site, maar kom niet verder.

Groetjes Danny. :thumb:
 
Laatst bewerkt:
Danny147, Als je printbereiken op de beide sheets verder niet variabel zijn, kan je het beste deze bereiken alvast via de standaard functionaliteit definieren. Vervolgens zet je in het Worksheet_BeforePrint event de regel
Code:
If range("B6").value <> "" or range("B7").value <> "" then 
    activesheet.printout
else
     exit sub
end if
(code uit de losse pols!)

Het zelfde spelletje kan je doen bij je andere sheet.

Groet, Leo
 
Beste Leo ;)

Veronderstel dat het printbereik variabel is of wordt kan men dan geen verwijzing doen naar cel A1 waar ik een bereik plaats.
Vb. A1 = B6:F100

Kan je dit in een bestandje gieten ?

Groetjes Danny. :thumb:
 
Laatst bewerkt:
Beste Leo ;)

Heb vroeger nog eens een code gekregen nl.

Code:
Sub AantalAfrdrukkenViaA1()
Dim iAntwoord As VbMsgBoxResult
Dim iAantal As Integer
iAantal = Range("A1").Value

   iAntwoord = MsgBox("Wil je deze sheet " & iAantal & " keer afdrukken?", vbYesNo, "Afdrukken?")
   If iAntwoord = vbNo Then Exit Sub
   
   ActiveWindow.SelectedSheets.PrintOut Copies:=iAantal, Collate:=True

End Sub

Nu wil ik dat hij het bereik afprint die in cel A1 staat en in cel A2 (2 bereiken dus) en een bereik dat op tabblad2 in cel A1 staat en dat er via een msgBox wordt gevraagd hoeveel pagina's dat ik wil afprinten.

Cel A1 in tabblad1 is een vast bereik. (F101:K200)
Cel A2 in tabblad1 is een variabel bereik via een formule.
Code:
=ALS(AANTAL(B6;B7)=1;"B6:F100";"")
Cel A1 in tabblad2 is een variabel bereik via een formule.
Code:
=ALS(AANTAL(B50;B51)=1;"B6:F100";"")

Groetjes Danny. :thumb:
 
Beste, ;)

Iemand soms een idee ??

Roncancio, Wigi, Ginger, snb, Warm Bakkertje jullie soms een idee ???


Groetjes Danny. :thumb:
 
Laatst bewerkt:
In welk werkblad staan de cellen B6, B7, B50 en B51 ?

Wellicht (bedacht, maar niet getest)

Code:
Sheets(1).pagesetup.printarea=iif([B6]&[B7]<>"","$B$6:$F$100,","") & "$F$101:$K$200"
Sheets(2).pagesetup.printarea=iif([B50]&[B51]<>"","$B$6:$F$100,","") & "$F$101:$K$200"

of

Code:
sheets(1).range(iif([B6]&[B7]<>"","$B$6:$F$100,","")& "$F$101:$K$200").printout
if [B50]&[B51]<>"" then sheets(2).Range("$B$6:$F$100").printout
 
Beste snb ;)

Ik wil dat in de code verwezen wordt naar cel A1 en cel A2 op tabblad1 waar het bereik staat en dat deze opgenomen wordt in de code.
Ook voor Cel A1 in tabblad2 hetzelfde.

In welk werkblad staan de cellen B6, B7, B50 en B51 ?

B6 en B7 staan in tabblad1
B50 en B51 staan in tabblad2

Groetjes Danny. :thumb:
 
Met een lichte aanpassing van mijn suggesties krijg je het zeker voor elkaar.
Maar, die cellen lijken mij overbodig.
 
Beste snb ;)

Heb volgende gemaakt, ik weet echter niet of dit juist is en kan gebruikt worden in de code.

Code:
Sheets(1).PageSetup.PrintArea = Range("A1").Value
Sheets(1).PageSetup.PrintArea = Range("A2").Value
Sheets(2).PageSetup.PrintArea = Range("A1").Value

De bereiken kunnen dagelijks variëeren en dan is het niet aan te raden telkens de code te veranderen, maar enkel cel A1 en cel A2.

MAAR voor hij deze afprint zou hij via een msgBox moeten vragen hoeveel afdrukken ik wenst.

Groetjes Danny. :thumb:
 
Beste Leo ;)

Ziet er op het eerste gezicht goed uit.
Kan het nu niet testen want de printer staat op mijn zoon zijn slaapkamer en die slaapt nu al.

1 vraagje nog :

Code:
If ActiveSheet.Name = "Sheet1" And (Range("B6").Value & Range("B7").Value) <> "" Then
Als hij niet aan deze voorwaarde voldoet moet hij het bereik ook niet afprinten,ik zie dit nergens staan.

Niet dat het zo belangrijk is , want dat zal ik zelf ook wel zien of hij aan de voorwaarde voldoet alvorens ik begin te printen.

Groetjes Danny. :thumb:
 
Danny147, Je moet de sheetnaam tussen de dubbele quotes nog wel ff aanpassen naar de sheetnaam die jij op je tab hebt staan. Anders gaat het niet goed.

Als hij niet aan deze voorwaarde voldoet moet hij het bereik ook niet afprinten,ik zie dit nergens staan
Wat de door jou getoonde regel doet is eerst kijken naar de naam van de sheet EN daarna wordt er gekeken of één van of de beide aangegeven cellen gevuld zijn. Als er dus aan die gezamelijke voorwaarde wordt voldaan, kan de code verder. Dus 'ja hoor' het is wel degelijk geregeld!;)

Groet, Leo
 
Laatst bewerkt:
Beste Leo ;)

Uitgetest en goedgekeurd :D

Bedankt.

Groetjes Danny. :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan