• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Soru Yazıcı ayarları

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
 
Şö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?
 
Şö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.
 
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
 
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
 
Çok uğraştık sanırım. En sonunda exceli çökerttik.
 
Ç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
 
Ben sizin için yazmıştım mesajımı..

Bende bir sorun yok yani.
 
.

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...

.
 
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
 
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
 
Yazıcı seçimi için;

Application.Dialogs(xlDialogPrinterSetup).Show
 
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.
 
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
 
Öğ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
 
Öğ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.
 
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.
 
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.
 
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
 
Geri
Üst