Soru Yazıcı ayarları

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,165
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2025
SENDKEYS komutu olduğu için adımlamadan direk çalıştırmalısınız. Bir butona kodları tanımlayıp test edebilirsiniz.

Her tuş gönderiminin doğru sonuç verdiğinden emin olmalısınız. Sonra tüm tuş basımları tek satırda yazılıp kullanılabilir.

Yani mantık şöyle;

CTRL+P bastınız ve yazıcının ayarlar penceresini açtınız. Önce bu tuş basımını denemelisiniz.
Bu doğru çalıştı diyelim.
Bu sefer CTRL+TAB tuş basımını ekleyip bunu test etmelisiniz.
Bu tuş basımı da sizi istediğiniz sekmeye yönlendirdi ve doğru çalıştı diyelim.
Bu sefer AŞAĞI OK 4 tuş basımını ekleyip teste devam edeceksiniz.

Böyle tüm tuş basımları bitene kadar devem edeceksiniz.

En sonunda doğru kombinasyonu bulmuş olacaksınız.

Umarım sonuç alırsınız.

"%{a} {TAB 2} {DOWN 4} {TAB} ~ ^({TAB}) {TAB 6} {DOWN 4} ~ +{TAB 3} ~"
Hocam (iyi geceler, işe geldim de) bunu açabilir misiniz.

Size yazdığım, ilk AŞAĞI OK 4'den sonra bir ENTER daha olacak. Size zahmet. Mesela %{a} CTRL+P demek mi.
CTRL+P
TAB 2
AŞAĞI OK 4
TAB
ENTER
CTRL+TAB
TAB 6
AŞAĞI OK 4
ENTER
SHIFT+TAB 3
ENTER
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,180
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Şöyle düşünün ilk tuşa basma eylemlerini gönderiyoruz. Sonra Printer seçme penceresi açılıyor.

CTRL+P işlevini aşağıdaki satır yapıyor.

Application.Dialogs(xlDialogPrinterSetup).Show


%{a} ise ALT+a anlamına geliyor. Tam hatırlamıyorum ama bende tepsi seçme olayını bir önceki iş yerimde denemiştim. Orada Xerox kullanıyorduk. Yazıcı ayarlarına erişim için ALT+a tuş basımı gerekiyordu. Onun için kullanmıştım.

Bu tuş basımı her yazıcı için farklı olduğundan deneme yaparak sonuca gitmek gerekiyor.

Son paylaştığınız resimde ayarlardan kontrol ettiğinizde TEPSİ 2 seçilmiş oluyor mu?
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,165
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2025
Şöyle düşünün ilk tuşa basma eylemlerini gönderiyoruz. Sonra Printer seçme penceresi açılıyor.

CTRL+P işlevini aşağıdaki satır yapıyor.

Application.Dialogs(xlDialogPrinterSetup).Show


%{a} ise ALT+a anlamına geliyor. Tam hatırlamıyorum ama bende tepsi seçme olayını bir önceki iş yerimde denemiştim. Orada Xerox kullanıyorduk. Yazıcı ayarlarına erişim için ALT+a tuş basımı gerekiyordu. Onun için kullanmıştım.

Bu tuş basımı her yazıcı için farklı olduğundan deneme yaparak sonuca gitmek gerekiyor.

Son paylaştığınız resimde ayarlardan kontrol ettiğinizde TEPSİ 2 seçilmiş oluyor mu?
Hocam, sanırım çözdüm. (umarım) o ekrandan sonra ESC yapmak gerekiyor.
Yani sizden ricam.
Application.SendKeys "%{a}" olayında benim önce yazıcıyı seçtirmem gerekiyor. Daha sonra zaten o yazıcı ile açılıyor.
Yani %{a} 'dan sonra
ENTER
AŞAĞI OK 3
ENTER
ESC
CTRL+P
TAB
ENTER
CTRL+TAB
TAB 6
AŞAĞI OK 4
ENTER
SHIFT+TAB 3
ENTER

Yapmam gerekiyor. Size zahmet hocam bunu yazabilir misiniz.
Saygılarımla.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,180
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

Anladığım kadarıyla CTRL+P tuşlarına kadar olan bölümde yazıcıyı seçiyorsunuz. Sonra tepsi seçeme işlemi yapıyorsunuz.

C++:
Sub Tepsi_Ikiyi_Sec_Yazdir()
    Application.SendKeys "%{a} ~ {DOWN 3} ~ {ESC}"
    Application.SendKeys "{TAB} ~ ^({TAB}) {TAB 6} {DOWN 4} ~ +{TAB 3} ~"
    Application.Dialogs(xlDialogPrinterSetup).Show
    Sheets("Sayfa1").PrintPreview
    'Sheets("Sayfa1").PrintOut Copies:=1, Collate:=True
End Sub
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,165
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2025
Deneyiniz.

Anladığım kadarıyla CTRL+P tuşlarına kadar olan bölümde yazıcıyı seçiyorsunuz. Sonra tepsi seçeme işlemi yapıyorsunuz.

C++:
Sub Tepsi_Ikiyi_Sec_Yazdir()
    Application.SendKeys "%{a} ~ {DOWN 3} ~ [ESC}"
    Application.SendKeys "{TAB} ~ ^({TAB}) {TAB 6} {DOWN 4} ~ +{TAB 3} ~"
    Application.Dialogs(xlDialogPrinterSetup).Show
    Sheets("Sayfa1").PrintPreview
    'Sheets("Sayfa1").PrintOut Copies:=1, Collate:=True
End Sub
Hocam, şöyle bir hata alıyorum. (diğer kodu siliyorum değil mi)Ekran Alıntısı.PNG
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,180
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Çok uğraştık sanırım. En sonunda exceli çökerttik.
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,165
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2025
Çok uğraştık sanırım. En sonunda exceli çökerttik.
Hocam gerçekten üzüldüm. Umarım bir veri kaybınız olmaz. Hocam sanırım o hata [ESC} olasından ötürü, {ESC} yapınca düzeldi.
Hocam, adım adım gidiyorum da. Fotoğrafta RENKLİ-A'ya gitmesi lazım DOWN var ama gitmiyor. Klavye ile AŞAĞI OK tuşu ile gidiyor sıkıntı yok.
Tekrar geçmiş olsun hocam.Ekran Alıntısı.PNG
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,180
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Ben sizin için yazmıştım mesajımı..

Bende bir sorun yok yani.
 

Emir Hüseyin Çoban

Destek Ekibi
Destek Ekibi
Katılım
11 Ağustos 2008
Mesajlar
5,891
Excel Vers. ve Dili
Office 2013 Tr - Win10 x64
.

Zamanında araştırdığım bir konu.
Yazıcı özelliklerine ulaşmak ve kodlamayı yapmak çok üst seviye bir durum.

Yazıcı modellerine göre servisten APİ kodlarını almanız gerekiyor.
Bu kodları VBA içinde tanımlayarak gerekli özellikleri kullanabiliyorsunuz.
Ancak her servis bu kadar donanımlı değil... Konudan bi haberler...

.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,180
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Ben şimdi aşağı ok olayını denedim.

İlk çalıştırdığım kod;

C++:
Sub Test()
    'Application.SendKeys "{DOWN 1}"
    Application.Dialogs(xlDialogPrinterSetup).Show
End Sub
Oluşan Görüntü;
221531


Daha sonra kod içindeki pasif satırı aktif hale getirip denediğimde oluşan görüntü;
221534
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,165
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2025
Ben şimdi aşağı ok olayını denedim.

İlk çalıştırdığım kod;

C++:
Sub Test()
    'Application.SendKeys "{DOWN 1}"
    Application.Dialogs(xlDialogPrinterSetup).Show
End Sub
Oluşan Görüntü;
Ekli dosyayı görüntüle 221531


Daha sonra kod içindeki pasif satırı aktif hale getirip denediğimde oluşan görüntü;
Ekli dosyayı görüntüle 221534
Hocam, sizi çok uğraştırdım biliyorum. Olayı şöyle çözmeye çalıştım. Öncelikle benim bilgisayarımda sürekli kayıt ve dönüştürme yaptığım için, varsayılan yazıcı olarak "Microsoft XPS Document Writer" olmak zorunda. Şimdi ben sanal bir yazıcı kurdurdum teknik servise ve aşağıdaki macro ile sayfaları yazdırıyorum. Sizden ricam sadece yazıcı seçimi yapması. Bu koda nasıl bir ekleme yapabiliriz.
Saygılarımla.

Sub yazdir()
'
' yazdir Makro
'
' Klavye Kısayolu: Ctrl+y
'
Sheets("Sayfa1").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Sheets("Sayfa2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Sheets("Sayfa3").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Sheets("Sayfa4").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Sheets("Sayfa5").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,180
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Yazıcı seçimi için;

Application.Dialogs(xlDialogPrinterSetup).Show
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,165
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2025
Yazıcı seçimi için;

Application.Dialogs(xlDialogPrinterSetup).Show
Hocam, affınıza sığınarak. Ankamadım 😔
Öncelikle, bu kodu, kodun hangi kısmına ekliyoruz. Ve bende 9 tane yazıcı var. İstediğim yazıcının adı RENKLİ-A bunu nereye yazacağım.
Teşekkür ederim.
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,165
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2025
Hocam, affınıza sığınarak. Ankamadım 😔
Öncelikle, bu kodu, kodun hangi kısmına ekliyoruz. Ve bende 9 tane yazıcı var. İstediğim yazıcının adı RENKLİ-A bunu nereye yazacağım.
Teşekkür ederim.
Hocam yazıcının resmi adı Lexmark CX920 Series PS3
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,180
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Öğrenme adımında deneme yapmaktan çekinmeyiniz.

Mantık olarak ilk önce yazıcı seçmek gerekiyorsa paylaştığım satırı kodalarınızda aşağıdaki bölümün üstüne eklemelisiniz.

Sheets("Sayfa1").Select
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,165
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2025
Öğrenme adımında deneme yapmaktan çekinmeyiniz.

Mantık olarak ilk önce yazıcı seçmek gerekiyorsa paylaştığım satırı kodalarınızda aşağıdaki bölümün üstüne eklemelisiniz.

Sheets("Sayfa1").Select
Anladım hocam,
Hocam, peki yazıcının adını yani hangi yazıcıyı seçeceğini nereye yazıyorum.

Application.Dialogs(xlDialogPrinterSetup).Show

Parantezin içine mi. Kusura bakmayın lütfen. Sayenizde baya öğrendim ama bu konularda hiç bir şey yapmamıştım ben.
Saygılarımla.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,180
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bu komut satırını çalıştırdığınızda açılan ekranda sizden yazıcı seçmenizi ister. Seçtiğiniz yazıcıya çıktıları gönderir.
 

muratgunay48

Altın Üye
Katılım
10 Şubat 2010
Mesajlar
1,165
Excel Vers. ve Dili
Office 365 - Türkçe (64 bit)
Altın Üyelik Bitiş Tarihi
31-01-2025
Bu komut satırını çalıştırdığınızda açılan ekranda sizden yazıcı seçmenizi ister. Seçtiğiniz yazıcıya çıktıları gönderir.
Hocam, ben VBScript komut dosyası ile tek tıkla çalıştırmak istemiştim ama o şekil olması mümkün değil mi.
Ben şimdi aşağı ok olayını denedim.

İlk çalıştırdığım kod;

C++:
Sub Test()
    'Application.SendKeys "{DOWN 1}"
    Application.Dialogs(xlDialogPrinterSetup).Show
End Sub
Oluşan Görüntü;
Ekli dosyayı görüntüle 221531


Daha sonra kod içindeki pasif satırı aktif hale getirip denediğimde oluşan görüntü;
Ekli dosyayı görüntüle 221534
Hocam, bunu halletsem tamam olacak. Sizi de çok yordum ama. Hepsi oluyor. Bu aşağı ok olmuyor bende.
(her çalıştırmayı denedikten sonra, NumLock kapanıyor, onu farkettim. Bir ilgisi olabilir mi.)
Saygılarımla.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,180
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Kendinize uyarlarsınız.

C++:
Option Explicit

Sub Yazdir()
    Eski_Yazici = Application.ActivePrinter
    Application.ActivePrinter = "RENKLİ-A"
    Sheets("Sayfa1").PrinOut
    Application.ActivePrinter = Eski_Yazici
End Sub
 
Üst