Makro ile yazıcı tepsisi seçimi

Kısa Açıklama

Makro ile yazıcı tepsisi seçimi isimli başlıkta, ilgili işlemlere dair detaylar yer almaktadır.
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Merhaba arkadaşlar,
Bir konuda yardım rica ediyorum.
Excel de fatura ve irsaliye olarak 2 sayfa var. Bu iki sayfanın çıktısı farklı yazıcılardan alınıyor.
Aşağıdaki makro ile çıktıları doğru yazıcıdan alabiliyorum.

Sub fatura_yazdir()
Sheets("Fatura").PrintOut ActivePrinter:="HP"
End Sub

Sub irsaliye Yazdır()
Sheets("irsaliye").PrintOut ActivePrinter:="Canon"
End Sub

Bildiğiniz gibi yazıcılarda el ile besleme, otomatik seçim yada tepsi 1, tepsi 2 gibi farklı kağıt kaynakları var.
Bunun seçimini nasıl yapabilirim?
Örneğin, ilk makroda faturayı HP yazıcıdan ve el ile beslemeden, 2. makroda irsaliyeyi Canon yazıcıdan ve tepsi 1 den çıktı almak istiyorum.

Yardımcı olabilirseniz çok sevinirim.
Şimdiden teşekkürler.
 
Yazıcının bu ayarlarına makro ile müdahale edilemiyor.
Başka bir yöntem ile bu sorunu çözebilirsiniz; aynı yazıcıya ait iki adet yazıcı tanımlaması yapın. Tanımlama yaptıktan sonra ilk yazıcının tepsi seçeneğini 1, diğer yazıcının tepsi seçeneğini 2 olarak ayarlayın. Daha önceki kullandığınız yazdırma kodlarınızı yazıcı ve tepsilere göre revize edin.
 
Merhaba
Webde windows apilerle yapılmış bir örnek buldum. 64 bit ofis kullandığınız için hata alırsanız module2 deki declare function ifadelerini declare ptrsafe function şeklinde değiştiriniz. Tepsili printerım olmadığı için çalışıp çalışmadığını test edemedim ancak hata da vermedi. Deneyerek işinize yarayacakmı test ediniz.

module1 deki PrinterTepsiSecim makrosunun içindeki gibi SetPrinterTray fonksiyonunu çağırıp ilk parametreye printer ismini, 2. parametre içinde tepsiyi vermeniz gerekiyor. Alabileceği değerler aşağıdaki belirtilmiş, sanırım deneyerek doğru tepsiye yönlendirmeniz lazım.. sonuc=1 ise ayar değişikliği başarılı olmuş demektir.

' Tepsi seçim ayarları:
' 1 = Upper
' 2 = Lower
' 3 = Middle
' 4 = Manual
' 5 = Envelope
' 6 = Envelope Manual
' 7 = Auto
' 8 = Tractor
' 9 = Small Format
' 10 = Large Format
' 11 = Large Capacity
'
Dim sonuc As Boolean
sonuc = SetPrinterTray("Xerox Phaser 3020", 4)
 
Ekli dosyalar
merhaba,
ilginiz için öncelikle teşekkür ederim.
belirttiğiniz gibi declare function hatası verdi, dediğiniz gibi düzelttim.
fakat sonra compile error: type mismatch hatası verdi. Hata olarak VarPtr işaretli
Burada kaldım :) ilerleyemedim.
Eğer düzelirse tepsi seçim ayarlarının hepsini deneyerek sizinle paylaşacağım.
teşekkürler.
 
Yazıcının bu ayarlarına makro ile müdahale edilemiyor.
Başka bir yöntem ile bu sorunu çözebilirsiniz; aynı yazıcıya ait iki adet yazıcı tanımlaması yapın. Tanımlama yaptıktan sonra ilk yazıcının tepsi seçeneğini 1, diğer yazıcının tepsi seçeneğini 2 olarak ayarlayın. Daha önceki kullandığınız yazdırma kodlarınızı yazıcı ve tepsilere göre revize edin.
Bende çok araştırdım, bir sonuç bulamadım.
Öneriniz çok mantıklı. Salman Beyin paylaştığı makro yu deniyorum. Sonucuna göre önerinizi uygulayacağım.
teşekkür ederim.
 
64 bit ofiste bazı değişkenleri LongPtr olarak tanımlayınca compile error mesajları düzeldi ;fakat bu seferde makro çalışmasını tamamlayamadan exccel kendini kapatmaya başladı. Males 64bit versiyonunu çalıştıramadım.
 
Geri
Üst