macro ile otomatik yazıcı seçimi

Katılım
1 Mart 2009
Mesajlar
113
Excel Vers. ve Dili
xp
Merhaba,

Bir sayfaya geldiğimde yazdır diyince otomatik olarak doğru (istediğim) yazıcının seçili olmasını istiyorum.
Yardımcı olursanız sevinirim.
 
Katılım
21 Ekim 2008
Mesajlar
2,323
Excel Vers. ve Dili
Office 2013 - Eng
Kod:
Application.Dialogs(xlDialogPrinterSetup).Show
bu sekilde mi yoksa saniyorum bu sekilde ayarlayabilirsiniz..

Kod:
Dim prt As Printer
For Each prt In Printers
  If prt.DeviceName = "[COLOR="Red"]printer adi[/COLOR]" Then
    Set Printer = prt
    Exit For
  End If
Next
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,359
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Ek olarak Yazıcı Seçimini aşağıdaki gibi de yapabilirsiniz :

Kod:
Sub a()
Dim Yazıcı As String
Yazıcı = Application.Dialogs(xlDialogPrinterSetup).Show
If Yazıcı = False Then Exit Sub
End Sub
 
Katılım
21 Ekim 2008
Mesajlar
2,323
Excel Vers. ve Dili
Office 2013 - Eng
Evet ilk verdigin kodun sub altina alinmis hali, tesekkurler Necdet Bey..
 
Katılım
1 Mart 2009
Mesajlar
113
Excel Vers. ve Dili
xp
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ScrollArea = "A1:I24"
End Sub

Private Sub Worksheet_Deactivate()
ScrollArea = "A1:I24"
End Sub

bu kodun altına itina ile

Dim prt As Printer
For Each prt In Printers
If prt.DeviceName = "Panasonic KX-P1150" Then
Set Printer = prt
Exit For
End If
Next
yazdım .
Yazdır dediğimde printer seçilmemişti.
Bir müddet sonra da kodda hata buldu.
Biyerde hata yaptım ama nerde
 
Katılım
21 Ekim 2008
Mesajlar
2,323
Excel Vers. ve Dili
Office 2013 - Eng
evet vba 6 icin o kod, necdet beyin verdigi sekilde denerseniz calisacaktir..
 
Katılım
1 Mart 2009
Mesajlar
113
Excel Vers. ve Dili
xp
evet ama burda da hangi yazıcıyı istediğimi nerey yazıcam ki?
 
Katılım
21 Ekim 2008
Mesajlar
2,323
Excel Vers. ve Dili
Office 2013 - Eng
O kod hangi printerdan print almak istiyorsaniz onu secmenize yarar ayrica print komutu vermelisiniz, bu arada az once problem yapan kod sanirim vpnprint acmistir onlari task managerdan temizlemenizi tavsiye ederim..
 
Katılım
1 Mart 2009
Mesajlar
113
Excel Vers. ve Dili
xp
Açıkçası ufak bir dosamız var onda cari hesap tutuyoruz.
Birde fatura sayfası var.Bu sayfada nokta vuruşlu yazıcıyı seçmek hep unutuluyor sonuçta zaman ve emek kaybı oluyor.
Ben o sayfada her zaman otomatik olarak Panasonic kx p1150 seçilmiş olabilir mi diye merak etmiştim.
Sanırım o şekilde olmuyor.
İlginize teşekkürler.
 
Katılım
21 Ekim 2008
Mesajlar
2,323
Excel Vers. ve Dili
Office 2013 - Eng
Kod:
Sub PrintToAnotherPrinter()
Dim STDprinter As String
    STDprinter = Application.ActivePrinter
    Application.ActivePrinter = "[COLOR="Red"]hp laserjet 1022 on ne02:[/COLOR]"
    ' change printer
    ActiveSheet.PrintOut
    ' prints the active sheet
    Application.ActivePrinter = STDprinter
    ' change back to standard printer
End Sub
simdi ben kendi printerimi yazdim kirmizi olan bolume fakat siz kendi printer`inizi yazicaksiniz, oncelikle kodu oldugu gibi yapistirin daha sonra ctrl+p yapip istediginiz nokta vuruslu printeri secip print etmeden cikin.. daha sonra

Kod:
    STDprinter = Application.ActivePrinter
kodunda Application.ActivePrinter`in uzerine mouse`unuzu getirdiginizde kirmizi yazili bolume yazacaginiz printer adinizi gorursunuz, kolay gelsin..
 
Katılım
1 Mart 2009
Mesajlar
113
Excel Vers. ve Dili
xp
Malesef bende bir türlü olmadı.
Nerde hata yaptım anlamıyorum.
Yazıcı adını yazdır daki görünen adıyla yazdım.
Ne o kodun üzerine gelince görünüyor nede otomatik o yazıcıyı seçiyor.

http://www.sendspace.com/file/pjz69l
Dosya burda bir yapabilen olursa çok sevinirim.

Fatura irsaliyeli ve fatura irsaliyesiz butonlarına basınca çıkan sayfalarda kullanmak istiyorum bu kodu.
 
Katılım
21 Ekim 2008
Mesajlar
2,323
Excel Vers. ve Dili
Office 2013 - Eng
Sadece printer adinizi yazicaksiniz, Application.ActivePrinter kodunun uzerinde vba kod duzenleyicisinde geldiginizde gorunur.. hp laserjet 1022 on ne02:yerine kendinizinkini yazin yeter..
 
Katılım
1 Mart 2009
Mesajlar
113
Excel Vers. ve Dili
xp
Mustafa Bey defalarca denedim malesef omuyor .Çıldırıcam.
Yabancı sitelerden de araştırdım oralarda da aynı kod.
Excel versiyonum 2002 sp2 acaba ondan mı sıkıntı oluyor.

Not:Sorumu yanlış ve eksik sorduğumu düşündüğümden başka başlık altında tekrar açtım
 
Katılım
21 Ekim 2008
Mesajlar
2,323
Excel Vers. ve Dili
Office 2013 - Eng
o basliginizi tam yapmaniz gerekeni yazdim, bu sefer oldurucaginizi saniyorum, cunku deneyerek yapiyorum ve sp ile alakasi yok bunun..
 
Katılım
6 Ağustos 2005
Mesajlar
63
Excel Vers. ve Dili
MSofis 2003 türkçe
Sayın Hocalarım
Pc ye bağlı 3 yazıcı var birincisi lazer yazıcı "xerox phaser 3117 ", ikincisi etiket yazıcısı "Z LP 2844", üçüncüsü ise ağ üzerinde nokta vuruşlu "OKI 3321"
Yazdıracağım sayfadaki bilgilerle, peşpeşe önce birinci yazıcıdan fiş çıkacak, ikinci yazıcıda etiket yazacak, üçüncü yazıcıda form yazacak.
Sayın Mustafaine'nin verdiği koda ;Yazıcı ismini doğru yazmama rağmen; ( kod çalışınca STDprinter üzerine mause ile gelince sarı yazıda " LPT1: üzerinde Z LP 2864" Yazıyor)
Application.ActivePrinter = "Z LP 2864 on LPT1" satırında hata veriyor ve aşağıdaki hata mesajını veriyor

run-time error "1004":
Method 'Activeprinter' of object '_Application" failed
Nedenini bilen arkadaşlar yardım edebilirler mi? Hepinize kolay Gelsin
 
Katılım
21 Ekim 2008
Mesajlar
2,323
Excel Vers. ve Dili
Office 2013 - Eng
Application.ActivePrinter = "Z LP 2864 on LPT1" Bu satir hata verdiginde debug deyip mouse ile
STDprinter = Application.ActivePrinter satirinda ActivePrinter`in uzerine gelip tirnak icinde ne yaziyorsa tamamen hata veren satirin tirnak icerisine yazdiniz mi?

eger yazdiysaniz
Kod:
Application.ActivePrinter = "Z LP 2864 on ne01:"
Application.ActivePrinter = "Z LP 2864 on ne02:"
Application.ActivePrinter = "Z LP 2864 on ne03:"
gibi arttirarak deneyiniz..
 
Katılım
6 Ağustos 2005
Mesajlar
63
Excel Vers. ve Dili
MSofis 2003 türkçe
Sayın arkadaşlar
Application.ActivePrinter = "Z LP 2864 on LPT1"
kod satırını
Application.ActivePrinter = "LPT1: üzerindeki Z LP 2864 "
şeklinde yazınca hata vermedi. Türkçe yada ingilizce versiyondan kaynaklanıyor her halde
Yalnız arkadaşlar dikkat 2864 ten sonra mutlaka bir boşluk verin ve tırnağı öyle kapatın o boşluğu vermeyince aynı hatayı veriyor.

saygılar
 

skaraayak

Altın Üye
Katılım
22 Eylül 2011
Mesajlar
10
Excel Vers. ve Dili
excel 2007 tr
Altın Üyelik Bitiş Tarihi
06-02-2028
kaç günlerdir tüm sitelerde(yerli ve yabancı) aradığım ve kafaya takıp diğer işlerimi yapamadığım bu yazıcı seçimi işinin de çözümünü bu sitede buldum.

Ne diyeyim Allah Razı olsun, çok teşekkürler...
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,781
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Yeni yazıcıların farklı kağıt besleme üniteleri var. Örneğin 1. de A4, 2. de A3 ve El ile besleme ünitesinde de A6 kağıt olsun. Excel'den yazdırıyoruz, farklı sayfalardan komut gönderirken bu belirlenemez mi?
Araya girdim belki ama, konu yazıcı olunca dikkatimi çekti. Genelde network yazıcılarında kullanılabilecek yöntem.
İlgilenenlere şimdiden teşekkür ederim.
Saygılarımla
 
Üst