Printer selecteren in VBA

Status
Niet open voor verdere reacties.

marcelh

Gebruiker
Lid geworden
9 sep 2009
Berichten
46
Beste forummers,

Nadat wij onze computers hebben opgewaardeerd van Win xp naar Win7 en Office 2007 naar Office 2010, krijg ik een foutmelding voor de printers. Normaal gesproken zou ik met de macro recorder mijn printers weer vinden en kopiëren in de code. Helaas is dit nu niet meer mogelijk; de macrocode geeft de printernaam en het netwerkadres niet meer weer.
Hoe zou nu de code moeten zijn om de 2 printers weer te laten functioneren

Hierbij een gedeelte van de code: (Hij mag ingekort worden als dat kan :eek:)
Code:
With Sheets("Paklijsten").PageSetup
        .LeftHeader = ""
        .CenterHeader = ""
        .RightHeader = ""
        .LeftFooter = ""
        .CenterFooter = ""
        .RightFooter = ""
        .LeftMargin = Application.InchesToPoints(0)
        .RightMargin = Application.InchesToPoints(0)
        .TopMargin = Application.InchesToPoints(0.7874015748032)
        .BottomMargin = Application.InchesToPoints(0.7874015748032)
        .HeaderMargin = Application.InchesToPoints(0.31496062992126)
        .FooterMargin = Application.InchesToPoints(0.31496062992126)
        .PrintHeadings = False
        .PrintGridlines = False
        .PrintComments = xlPrintNoComments
        '.PrintQuality = 300
        .CenterHorizontally = True
        .CenterVertically = True
        .Orientation = xlLandscape
        .Draft = False
        .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = 85
        .PrintErrors = xlPrintErrorsDisplayed
        .OddAndEvenPagesHeaderFooter = False
        .DifferentFirstPageHeaderFooter = False
        .ScaleWithDocHeaderFooter = True
        .AlignMarginsHeaderFooter = True
        .EvenPage.LeftHeader.Text = ""
        .EvenPage.CenterHeader.Text = ""
        .EvenPage.RightHeader.Text = ""
        .EvenPage.LeftFooter.Text = ""
        .EvenPage.CenterFooter.Text = ""
        .EvenPage.RightFooter.Text = ""
        .FirstPage.LeftHeader.Text = ""
        .FirstPage.CenterHeader.Text = ""
        .FirstPage.RightHeader.Text = ""
        .FirstPage.LeftFooter.Text = ""
        .FirstPage.CenterFooter.Text = ""
        .FirstPage.RightFooter.Text = ""
    End With
        Application.ActivePrinter = "Brother HL-5450DN series op Ne05:"
        ExecuteExcel4Macro _
            "PRINT(1,,,1,,,,,,,,2,""Brother HL-5450DN series op Ne05:"",,TRUE,,FALSE)"
    Sheets("Paklijsten").Visible = False
        '
        ' LabelsSamenstellen Macro
        '
        
        '
            Sheets("Pakket aantal").Visible = True
            Sheets("Pakket aantal").Range("$H$64:$K$90").AutoFilter Field:=1, Criteria1:="<>"
            Sheets("Pakket aantal").Range("H64:K90").Copy
            Sheets("Pakket aantal").Range("H118").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                :=False, Transpose:=False
            ActiveSheet.Range("B1").Select
                            '
        ' LabelsPrinten Macro
        '
        
        '
            Sheets("Pakket aantal").Visible = False
            Sheets("Etiketten Alu").Visible = True
            Sheets("Etiketten Dak").Visible = True
            Sheets("Etiketten Passtukken").Visible = True
            Sheets("Etiketten Doos").Visible = True
            
            Sheets("Etiketten Alu").Select
            Application.ActivePrinter = "ZDesigner GK420t op Ne00:"
        ExecuteExcel4Macro _
            "PRINT(1,,,1,,,,,,,,2,""ZDesigner GK420t op Ne00:"",,TRUE,,FALSE)"
            Sheets("Etiketten Dak").Select
        ExecuteExcel4Macro _
            "PRINT(1,,,1,,,,,,,,2,""ZDesigner GK420t op Ne00:"",,TRUE,,FALSE)"
            Sheets("Etiketten Passtukken").Select
        ExecuteExcel4Macro _
            "PRINT(1,,,1,,,,,,,,2,""ZDesigner GK420t op Ne00:"",,TRUE,,FALSE)"
            Sheets("Etiketten Doos").Select
        ExecuteExcel4Macro _
            "PRINT(1,,,1,,,,,,,,2,""ZDesigner GK420t op Ne00:"",,TRUE,,FALSE)"

            Sheets("Etiketten Alu").Visible = False
            Sheets("Etiketten Dak").Visible = False
            Sheets("Etiketten Passtukken").Visible = False
            Sheets("Etiketten Doos").Visible = False

    Sheets("Invoer").Select
        Application.ActivePrinter = "Brother HL-5450DN series op Ne05:"
 
Laatst bewerkt:
Zou je de code kunnen opmaken met de CODE knop? Hier is zo geen doorkomen aan :)
 
Sorry vergeten, is aangepast OctaFish........ ik vond het er ook al vreemd uitzien. :)
 
Laatst bewerkt door een moderator:
Hartelijk dank :). Nu nog niet de Quote knop alleen gebruiken als er iets te quooten valt (nu is het een nodeloze kopie van mijnbericht, dat er toch echt boven staat) en ik ben een gelukkig mens ;).
Wij hebben deze week ook een conversie gedaan van XP naar W7, dus ik kan het morgen wel even uitproberen.
 
Nou vooruit dan:

Code:
Sub M_printers()
  For Each pr In CreateObject("Wscript.network").EnumPrinterConnections
    c00 = c00 & vbLf & pr
  Next
  MsgBox c00
End Sub
 
Hallo snb,
ik zit met hetzelfde probleem. de code die jij aangeeft, moet die voor de printopdracht tussengevoegd worden?
groet, Ton
 
Nee, de code, die je ongetwijfeld al getest hebt, geeft een overzicht van beschikbare printers. Daarmee kun je de application.activeprinter ='xxxxx" instellen in je macro.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan