Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Drukowanie etykiet przez VBA Excel

14 Sty 2020 14:19 189 8
  • Poziom 8  
    Witam
    Zrobiłem prosty program do drukowania etykiet działający w następujący sposób: w formularzy mam pole do wpisywania danych, wpisuję kod towaru, enter i wpisuje ilość etykiet, naciskam enter i drukowana jest wpisana ilość etykiet. I wszystko działa dobrze tylko po wydruku kursor nie wraca do pola wpisywania a formularz staje się nieaktywny. Trzeba kliknąć na niego żeby można było ponownie wpisać dane. Drugi problem to przestawianie się drukarki domyślnej (drukuję na innej).
    Używam kodu:
    With Worksheets("wydruk")
    .PageSetup.PrintArea = "$A$1:$k$4"
    .PrintOut copies:=ilosc, ActivePrinter:="drukarkanazwa", Collate:=True
    End With
    Pzdr.
  • Poziom 33  
    Z drukarką to możesz tak
    Kod: vbscript
    Zaloguj się, aby zobaczyć kod


    Korzystasz z userform?
  • Poziom 8  
    Dzięki.
    Już zdążyłem to znaleźć w międzyczasie.
    I ile zauważyłem to drukarka zmienia sie w Office 2010 w 2013 już nie.
    Korzystam z userform.
    Pzdr.
  • Poziom 33  
    gattuzo napisał:
    w formularzy mam pole do wpisywania danych, wpisuję kod towaru, enter i wpisuje ilość etykiet, naciskam enter i drukowana jest wpisana ilość etykiet. I wszystko działa dobrze tylko po wydruku kursor nie wraca do pola wpisywania

    Czyli jakiś textbox? to daj na niego fokus textbox.setfocus
  • Poziom 8  
    Próbowałem ale nie działa.
    Dawałem nawet msgbox żeby chwilę poczekać ale też nie.
    Pzdr.
  • Poziom 33  
    Pokaż jaki masz kod do tego.
  • Poziom 5  
    Odnośnie wyboru drukarki polecam następujące makro

    Sub Druk()
    ActiveSheet.PageSetup.PrintArea = "$A$1:$K$4"

    With ActiveSheet.PageSetup
    .CenterHorizontally = True
    .CenterVertically = True
    .Orientation = xlPortrait
    .PaperSize = xlPaperA4
    .FitToPagesWide = 1
    .FitToPagesTall = 1
    End With

    Application.Dialogs(xlDialogPrinterSetup).Show
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Preview:=True

    Application.ScreenUpdating = True

    Exit Sub
    myErr:
    Application.ScreenUpdating = True
    MsgBox "Błąd drukowania: " & Err.Description, vbCritical + vbOKOnly, "Błąd"
  • Poziom 8  
    Pomyślałem że może załatwić to wysyłając p prostu kombinację Alt+Tab, tylko jak to zrobić?
    Pzdr.
  • Poziom 33  
    gattuzo napisał:
    Pomyślałem że może załatwić to wysyłając p prostu kombinację Alt+Tab, tylko jak to zrobić?
    Pzdr.

    Możesz przez (pokaż cały kod)
    Kod: vbscript
    Zaloguj się, aby zobaczyć kod