Excel drukowanie na kilku drukarkach różne arkusze

Anonimowe
2018-11-22T12:00:42+00:00

Mam kilka arkuszy przygotowanych do drukowania. Każdy arkusz drukuję na innej (konkretnej) drukarce. Jak za pomocą makra określić wybór drukarki przypisanej do arkusza.

Do tej pory korzystałem z makra:

Sub makrro1()

For i = 4 To 6

    Select Case i

    Case 4

        tex = "Drukarka  1"

        'druk= "drukarka 3 na komputerze magazynu 2"  ' to nie działa! 

    Case 5

        tex = "drukarka 2"

    Case 6

        tex = "drukarka 3"

'    itd ....

    End Select

    MsgBox "Arkusz " & Sheets(i).Name & "   -->   Drukarka " & tex

    aa = Application.Dialogs(xlDialogPrint).Show

Next i

End Sub

Najprostrzym rozwiązaniem jest dodanie do każdego Case zmiennej druk= "drukarka nazwa", a na końcu przed Next - application.printout  ActivePrinter:= drukAle to rozwiązanie nie działa. Co należy poprawić?

Microsoft 365 i Office | Excel | Do użytku domowego | Windows

Pytanie zablokowane. To pytanie zostało zmigrowane ze społeczności pomocy technicznej firmy Microsoft. Możesz zagłosować, czy pytanie jest pomocne, ale nie możesz dodawać komentarzy ani odpowiedzi, ani też śledzić pytania.

Komentarze: 0 Brak komentarzy

1 odpowiedź

Sortuj według: Najbardziej pomocne
  1. Oskar Shon 49,331 Punkty reputacji Moderator wolontariuszy
    2018-11-22T13:25:35+00:00

    Tak poleceniem:

    Dim dlg As Dialog: Set dlg = Application.Dialogs(xlDialogPrint)

    dlg.Show

    Możesz wywołać okno wydruku Arkusza, 

    ActiveWindow.SelectedSheets.PrintOut Copies:=1

    a potem wywołać faktyczny wydruk w ilości sztuk jakie chcesz.

    Polecenie

    MsgBox dlg.Application.ActivePrinter

    To informacja przywołania która z drukarek jest teraz wybrana

    Nie ma zaś w skoroszycie Excela ustawienia drukarki, tak aby każdy z arkuszy był przypisany do innej maszyny. Drukarka jest własnością systemu i albo musisz to inaczej zaprogramować, albo przestawiać domyślne drukarki przed każdym wydrukiem.

    Oczywiście są procedury bazujące na API "winspool.drv", ale nie ma prostego odwołania aby można było użyć w case jak u ciebie kierując naprzemiennie kolejne wydruki. Przynajmniej ja się nie spotkałem.

    Czy ta odpowiedź była pomocna?

    Inne osoby (2) uznały tę odpowiedź za pomocną.
    Komentarze: 0 Brak komentarzy