Hallo medetweakers,
Ik heb een interessante uitdaging te maken in (of in ieder geval vanuit) Excel VBA.
In een programmatje welke we gebruiken om product-labels te printen heb ik een stukje VBA code zitten welke de printactie triggert. Wat er in feite gebeurt is dat na het indrukken van de 'Printknop', de code kijkt welke waarde in de cel met naam 'CopiesCell' staat, en vervolgens de sheet print (deel ervan, via print-areas) met een X aantal kopieën.
Feitelijk zijn dit dus kleine labels welke naar een Zebra Labelprinter gestuurd worden.
Deze printers zijn dusdanig snel dat ze met gemak tot zo'n 4 labels per seconde uitprinten.
Vaak zullen er ook 10 of meer labels in 1x geprint worden, echter geeft dit het probleem:
Excel VBA zend deze 'kopieën' als losse print-jobs. Wil dus zeggen dat wanneer in de 'CopiesCell' bijvoorbeeld een waarde van 40 ingevuld wordt, dat de VBA code 40 losse printjobs met 1 label maakt.
Dit heeft tot gevolg dat de printer 40 keer 'opnieuw start', terwijl wanneer deze in 1 gang 40 stuks print, dit in een vloek en scheet gebeurt is.
Ik ben op zoek naar een manier om deze losse printjobs dus te vermijden, en daadwerkelijk één printjob te krijgen met daarin het aantal kopieën verwerkt, zodat deze in 1 lange string geprint kunnen worden.
Wie kan me hieraan helpen?
Liefst gebruik ik zo min mogelijk omwegen, zeker zo min mogelijk via non-native Windows software, gezien deze excel vanaf meerdere pc's gebruikt zal gaan worden.
Ik verwacht dat 'k hier wellicht via een PDF export o.i.d. zal moeten werken, maar ben erg benieuwd of er wellicht nog andere wegen zijn, en of dat iemand me hierin kan supporten.
Summier heb ik nu onderstaande code, ter referentie:
Private Sub PRINTBUTTON_Click()
Dim PrintCopies As Integer
Dim ws As Worksheet
Set ws = ActiveWorkbook.Sheets("SheetX")
PrintCopies = ws.Range("CopiesCell").value
ws.PrintOut copies:=PrintCopies, ActivePrinter:="Printer01"
End Sub
Alvast zeer bedankt!
Ik heb een interessante uitdaging te maken in (of in ieder geval vanuit) Excel VBA.
In een programmatje welke we gebruiken om product-labels te printen heb ik een stukje VBA code zitten welke de printactie triggert. Wat er in feite gebeurt is dat na het indrukken van de 'Printknop', de code kijkt welke waarde in de cel met naam 'CopiesCell' staat, en vervolgens de sheet print (deel ervan, via print-areas) met een X aantal kopieën.
Feitelijk zijn dit dus kleine labels welke naar een Zebra Labelprinter gestuurd worden.
Deze printers zijn dusdanig snel dat ze met gemak tot zo'n 4 labels per seconde uitprinten.
Vaak zullen er ook 10 of meer labels in 1x geprint worden, echter geeft dit het probleem:
Excel VBA zend deze 'kopieën' als losse print-jobs. Wil dus zeggen dat wanneer in de 'CopiesCell' bijvoorbeeld een waarde van 40 ingevuld wordt, dat de VBA code 40 losse printjobs met 1 label maakt.
Dit heeft tot gevolg dat de printer 40 keer 'opnieuw start', terwijl wanneer deze in 1 gang 40 stuks print, dit in een vloek en scheet gebeurt is.
Ik ben op zoek naar een manier om deze losse printjobs dus te vermijden, en daadwerkelijk één printjob te krijgen met daarin het aantal kopieën verwerkt, zodat deze in 1 lange string geprint kunnen worden.
Wie kan me hieraan helpen?
Liefst gebruik ik zo min mogelijk omwegen, zeker zo min mogelijk via non-native Windows software, gezien deze excel vanaf meerdere pc's gebruikt zal gaan worden.
Ik verwacht dat 'k hier wellicht via een PDF export o.i.d. zal moeten werken, maar ben erg benieuwd of er wellicht nog andere wegen zijn, en of dat iemand me hierin kan supporten.
Summier heb ik nu onderstaande code, ter referentie:
Private Sub PRINTBUTTON_Click()
Dim PrintCopies As Integer
Dim ws As Worksheet
Set ws = ActiveWorkbook.Sheets("SheetX")
PrintCopies = ws.Range("CopiesCell").value
ws.PrintOut copies:=PrintCopies, ActivePrinter:="Printer01"
End Sub
Alvast zeer bedankt!