Goedemorgen allen,
Wij maken onze facturen in excel. Jarenlang is dit gedaan door eerst een PDF van het bestand te maken en daarna de factuur te printen op een ouderwetse matrixprinter. Hierdoor hadden we dus altijd twee fysieke kopietjes van de factuur.
Echter bereikt de matrixprinter het einde van zijn leven en is het natuurlijk wel een beetje uit de tijd. Nu werken we met deze code:
Nu wil ik het stukje vanaf de messagebox veranderen naar ActiveSheet printen op printer 1 (waar gekleurd papier in gaat), en dan Activesheet printen op printer 2 (waar normaal papier ingaat). Dit kan natuurlijk door twee keer een msgbox te tonen, waar je handmatig de printer selecteert maar dat is nogal omslachtig. Als ik de macro opneem zonder messagebox en hem daarna uitvoer, kiest hij altijd de standaard printer. Als ik de macro opneem in Word staan er wel twee verschillende printers maar als ik die code vervolgens kopieer naar Excel, loopt het gelijk fout bij het selecteren van de eerste printer.
Heeft er iemand een idee hoe dit op te lossen?
Wij maken onze facturen in excel. Jarenlang is dit gedaan door eerst een PDF van het bestand te maken en daarna de factuur te printen op een ouderwetse matrixprinter. Hierdoor hadden we dus altijd twee fysieke kopietjes van de factuur.
Echter bereikt de matrixprinter het einde van zijn leven en is het natuurlijk wel een beetje uit de tijd. Nu werken we met deze code:
Sub Opslaan()
Dim FacName As String
' Macro opgenomen op 9-8-2017 door
FacName = ActiveSheet.Range("C19") & "_" & ActiveSheet.Range("O6").Value ' De macro haalt met dit command het factuurnummer op in de factuur, om deze later als naam voor het PDF-bestand te gebruiken.
If Dir("K:\Document\Debiteuren\Fakturen\facturen digitaal" & "factuur_" & FacName & ".pdf") <> "" Then
MsgBox "Het bestand: " & FacName & ".pdf bestaat reeds" ' Een controle om geen dubbel PDF-bestand te maken.
Exit Sub 'Verlaat de routine als het PDF-bestand reeds bestaat.
Else
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="K:\Document\Debiteuren\Fakturen\facturen digitaal" & "factuur_" & FacName & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=True, From:=1, To:=2, OpenAfterPublish:=False
ActiveWorkbook.SaveAs Filename:="K:\Document\Debiteuren\Fakturen\facturen digitaal\Excel" & "factuur_" & FacName & ".xls"
Application.Dialogs(xlDialogPrinterSetup).Show
Sheets("PRINT").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Sheets("FACTUUR EMAIL PDF ").Select
End If
End Sub
Nu wil ik het stukje vanaf de messagebox veranderen naar ActiveSheet printen op printer 1 (waar gekleurd papier in gaat), en dan Activesheet printen op printer 2 (waar normaal papier ingaat). Dit kan natuurlijk door twee keer een msgbox te tonen, waar je handmatig de printer selecteert maar dat is nogal omslachtig. Als ik de macro opneem zonder messagebox en hem daarna uitvoer, kiest hij altijd de standaard printer. Als ik de macro opneem in Word staan er wel twee verschillende printers maar als ik die code vervolgens kopieer naar Excel, loopt het gelijk fout bij het selecteren van de eerste printer.
Heeft er iemand een idee hoe dit op te lossen?