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

Printen via VBA

Status
Niet open voor verdere reacties.

Thoralf

Terugkerende gebruiker
Lid geworden
29 okt 2007
Berichten
1.418
Hallo allemaal

Mijn kennis van VBA is niet zodanig dat ik moeilijke vragen daarin kan oplossen. Daarom nu een vraag:

Ik heb een werkmap met daarin de volgende code:
Code:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Application.EnableEvents = False
SelektiefPrinten
Application.EnableEvents = True
End Sub

Selektief printen bestaat uit de volgende code:
Code:
Sub SelektiefPrinten()
SetNoPub
ActiveSheet.PrintOut
UndoNoPub
End Sub

Als ik nu op afdrukken klik worden er 2 afdrukken gemaakt, waarvan ik eigenlijk alleen in de eerste geïnteresseerd ben (daarin wordt namelijk afgedrukt wat ik wil.
In de tweede afruk komen ook de gegevens die ik juist niet wilde afdrukken).
In de routines SetNoPub en UndoNoPub komen geen printopdrachten voor (behelzen slechts hide en show van kolommen).

Wat moet ik aanpassen om de tweede afdruk niet te krijgen?
 
Verander
Code:
ActiveSheet.PrintOut

in

Code:
ActiveSheet.PrintOut From:=1, To:=1

Met vriendelijke groet,


Roncancio
 
Hallo Roncancio,

Ik heb jouw advies gevolgd, maar het werkt niet:
Als ik de knop printen in de werkbalk gebruik, blijven er 2 prints komen.
Als ik via menu afdruk blijkt er rechtstreeks een afdruk via VBA gemaakt te worden (de bedoelde afdruk), maar ook verschijnt het venster afdrukken. Als je dan op annuleren drukt heb ik mijn beoogde afdruk, maar als ik op OK druk dan verschijnt de tweede afdruk, die ook via de werkbalkknop komt.
Voorlopig ben ik er dus nog niet uit
 
Hallo Roncancio,

Ik heb jouw advies gevolgd, maar het werkt niet:
Als ik de knop printen in de werkbalk gebruik, blijven er 2 prints komen.
Als ik via menu afdruk blijkt er rechtstreeks een afdruk via VBA gemaakt te worden (de bedoelde afdruk), maar ook verschijnt het venster afdrukken. Als je dan op annuleren drukt heb ik mijn beoogde afdruk, maar als ik op OK druk dan verschijnt de tweede afdruk, die ook via de werkbalkknop komt.
Voorlopig ben ik er dus nog niet uit

Klopt het printbereik wel?

Met vriendelijke groet,


Roncancio
 
Ik heb geen printbereik ingesteld.
Wat er gebeurt is volgens mij dat er nadat de routine before-print is uitgevoerd de echte printopdracht er achteraankomt. Met andere woorden hoe kan ik die laatste actie nu via VBA stoppen? Ik heb al geprobeerd de routine met de opdracht Cancel = true af te sluiten, maar dan wordt er helemaal niets geprint.
 
Het event BeforePrint wordt geactiveerd als je wilt gaan printen. Logisch :p
In dat event heb je nóg een printopdracht gegeven.

Je zou de code onder een knop kunnen zetten ipv Before print?

Met vriendelijke groet,


Roncancio
 
Hallo Roncancio,

Van onder een knop werkt het perfect, maar ik wilde ook dat het zou werken als ik gebruik zou maken van de knop op de werkbalk of van de menuoptie printen.
Ik was deze vorm overigens bij Ron de Bruin tegen gekomen. Ik ben er nog weer eens even naar terug gegaan, en kwam tot de ontdekking dat ik niet de volledige code die hij gaf heb overgenomen:
Ik had de regel met Cancel = True niet meegenomen.
Die bleek alles op te lossen.
Met die opdracht wordt kennelijk de gestarte printopdracht afgebroken, waardoor alleen de printopdracht vanuit VBA overblijft.

Bedankt voor het meedenken. Het zette mij nog eens weer op het spoor terug te gaan naar de bron.

Groeten
Thoralf
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan