Temat: Inteligentne drukowanie

Jest tabelka z opisem wydruków zaświadczeń:
1 | Arkusz pierwszy - jednostronnie |
2 | Arkusz drugi jednostronnie 2 kopie |
3 |Arkusz trzeci dwustronnie |
4 |Arkusz czwarty 3 kopie dwustronnie |
Po to aby osoba obsługująca arkusz wiedziała które zaświadczenie ma wydrukować.
W tej chwili ta osoba obsługująca patrzy jakie cyfry ma przypisane Kowalski i na tej podstawie drukuje - plik drukuj itd.
Jan Kowalski | 1,3 |
czyli dla Kowalskiego drukujemy arkusz pierwszy jednostronnie i arkusz trzeci dwustronnie
Czy nie dało by się jakoś tego zautomatyzować np makrem? aby po naciśnięciu przycisku wydrukowało się wszystko co trzeba?
(dodam iż nie trzeba wyszukiwać osoby gdyż wcześniejsze reguły i filtry na pierwszej stronie arkusza wskazują już konkretną osobę z przypisanymi numerami wydruków w komórce)
Szukałem w Excelu sposobu ale nie ma tam możliwości wybrania konkretnych arkuszy a nie dopiero konkretnych arkuszy i każdy inaczej (dwustronnie lub kilka kopii)
Może macie jakiś pomysł?
Oskar Shon

Oskar Shon Dodatki do Office
www.VBATools.pl

Temat: Inteligentne drukowanie

Jak to nie ma.
Nagraj sobie przejście na odpowiedni arkusz, ustawienie strony i wydruk.
Sprawdź co jest ważnego w instrukcji wyglądu strony, co możesz zmienić.
Linijkę z poleceniem wydruku, powiel tyle razy ile chcesz.

Niektóre instrukcje mogą być niedostępne, ponieważ kieruje nimi bufor drukarki a nie aplikacja.
W tedy instrukcja zmiany danych w rejestrze albo zostają niewygodne polecenia .sendkeys

Temat: Inteligentne drukowanie

Małymi kroczkami zrobiłem to co chciałem ale mam jeden problem w makro.
Sub druk_skier()
MsgBox "Zmień drukarkę na dwustronną"
Application.Dialogs(xlDialogPrint).Show
Sheets("4 skier").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=2, Collate:=True, _
IgnorePrintAreas:=False
End Sub
Mianowicie
Makro wywołuje komunikat a następnie okno dialogowe drukarki aby użytkownik wybrał inną drukarkę. Jesli na oknie dialogowym wybiorę cancel to mimo wszystko mi wydrukuje a ja bym chciał przewiać drukowanie.
Oskar Shon

Oskar Shon Dodatki do Office
www.VBATools.pl

Temat: Inteligentne drukowanie

Musisz przypisać polecenie do zmiennej
Dim dlg As Dialog: set dlg = Application.Dialogs(xlDialogPrint)

a potem sprawdzić jaki daje parametr po wywołaniu .show
Zapewne też możesz przekazać dane wejściowe, aby od razu ustawić okno w odpowiednich opcjach

Temat: Inteligentne drukowanie

dzięki za podpowiedź działa!

heets("4 skier").Select
MsgBox "Zmień drukarkę na Dwustronną"
Dim dlg As Dialog: Set dlg = Application.Dialogs(xlDialogPrint)
Application.Dialogs(xlDialogPrint).Show
If vbCancel Then
Exit Sub
Else
ActiveWindow.SelectedSheets.PrintOut Copies:=2, Collate:=True, _
IgnorePrintAreas:=False
End If
End Sub

Oczywiście to makro to jest sposób na to aby przy drukowaniu dwustronnym użytkownik wybrał inną drukarkę. Bo niestety nie poradzę sobie aby to ustawić w makro. Ale to mi wystarczy.

Następna dyskusja:

Drukowanie i prezentacja




Wyślij zaproszenie do