• DİKKAT

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

Sendkeys Kodları İle Yazıcı Kağıt Boyutlarını Düzenleme

Katılım
15 Haziran 2021
Mesajlar
147
Excel Vers. ve Dili
Office 2016
Merhaba

Zebra barkod yazıcımın yazdırmadan önce kağıt boyutu ayarlarını yapmak istiyorum. Forumdaki araştırmalarım sonucu sendkeys ile bunu yapabileceğimi öğrendim. @Korhan Ayhan beyin paylaştığı bilgiler ile anladığım kadarıyla şu kodları oluşturdum.

Kod:
Sub yazdirmak()
Application.SendKeys "{^}{P}{TAB 3}{ENTER}{TAB 2}{DOWN 15}{TAB 5}"
Application.SendKeys "12"
Application.SendKeys "{TAB}"
Application.SendKeys "3"
Application.SendKeys "{ENTER}"
End Sub
/CODE]

sonra ana işlemi yapan makromun içinde bu yan makroyu çağırarak çalıştırmayı denedim
[ICODE]Call Module1.yazdirmak[/ICODE]


 makroyu çalıştırdığımda, excell sayfamdaki  H17 ve I17 sütünlarına 12 ve 3 yazıyor adımları hesapladım yazdığım kodla uyuşuyor, sanırım en baştaki CTRL+P yi çalıştıramıyorum.

Sorunu çözemedim. Yardımcı olabilecek var mı?
 
Merhaba,

Sendkeys adımlarını toplu değilde parçalayarak yazmayı deneyiniz.
 
Bu şekilde dener misiniz.

C#:
Application.SendKeys "^p"
Application.SendKeys "{TAB 3}{ENTER}{TAB 2}{DOWN 15}{TAB 5}"
 
Son düzenleme:
Send Keys kodlarını şu şekilde düzelttim.

Kod:
Sub yaziciayarla()
Application.SendKeys "^p"
Application.SendKeys "{TAB 3}{ENTER}{TAB 2}{DOWN 15}{TAB 5}"
Application.SendKeys "12"
Application.SendKeys "{TAB}"
Application.SendKeys "3"
Application.SendKeys "{TAB 5}"
Application.SendKeys "{ENTER}"
Application.SendKeys "{ESC}"
End Sub

Ana sayfadaki hücrelere yazmıyor. Ama istediğim işlemi de yapmıyor.

Şöyle bir durum dikkatimi çekti

Kod:
'yazıcı seçtim
Call Module1.yazicisec
'yazdırma boyut ayarlarını yaptım
Call Module1.yaziciayarla
'yazdirma islemi yapiyorum
Sheets("etiket").Select
    Columns("A:C").Select
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False

acaba ana kodlarımın diziliminde mi bir sorun var? çünkü yaziciyiayarla modülünü çağırmadığımda yazıcıdan çıktı alıyor fakat ayarlanmamış şekilde.
Yazıcı ayarla modülünü çağırdığımda ise klavyede açık olan num lock'u kapatıyor.
 
Sendkeys komutları biraz sıkıntılıdır.

Linkte bazı çözümler önerilmiş. Sizde uygulayıp test edebilirsiniz.

 
Sendkeys komutları biraz sıkıntılıdır.

Linkte bazı çözümler önerilmiş. Sizde uygulayıp test edebilirsiniz.


Yapamadım vazgeçtim.

Bu işlemi yapabilmek için farklı bir yöntem araştırıyorum ama bir sonuca ulaşamamadım.
önerebileceğiniz bir yol var mı?
 
Hemen pes etmeyin..

Komutlar arasına biraz bekleme süresi eklemeyi deneyebilirsiniz.

Application.SendKeys "^p", True

ya da

Application.SendKeys "^p"
DoEvents

ya da

Application.SendKeys "^p"
Application.Wait Now + TimeSerial(0, 0, 1)
 
Hemen pes etmeyin..

Komutlar arasına biraz bekleme süresi eklemeyi deneyebilirsiniz.

Application.SendKeys "^p", True

ya da

Application.SendKeys "^p"
DoEvents

ya da

Application.SendKeys "^p"
Application.Wait Now + TimeSerial(0, 0, 1)

Tekrardan merhaba

Kod:
Sub yaziciayarla()
Application.SendKeys "{NUMLOCK}"
Application.SendKeys "^p"
Application.Wait Now + TimeSerial(0, 0, 3)
Application.SendKeys "{TAB 3}"
Application.SendKeys "{ENTER}"
Application.SendKeys "{TAB 2}"
Application.SendKeys "{DOWN 15}"
Application.SendKeys "{TAB 5}"
Application.SendKeys "12{Enter}"
Application.SendKeys "{TAB}"
Application.SendKeys "3{Enter}"
Application.SendKeys "{TAB 5}"
Application.SendKeys "{ENTER}", True
Application.SendKeys "{ESC}", True
End Sub

birşeyin açılması için beklediğim yere bekletme için aralık verdim.

kodu çalıştırınca 35012 kodlu bir hata verip kapandı.
 
Tekrar merhaba

yanlış yaptığım şeyi buldum kodum çalıştı yazıcı ayarlarını istediğim şekilde düzenliyor ama yazdırmayı yapamıyor.

Kod:
'yazıcı seçtim
Call Module1.yazicisec
'yazdirma sayfasını seçtim
Sheets("etiket").Select
'yazdırma boyut ayarlarını yaptım
Call Module1.yaziciayarla
'yazdirma alanını tekrar seçtim
Sheets("etiket").Select
    Columns("A:C").Select
'yazdirma islemi yapiyorum
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False

Yazdırmayı yaptığım alanın kod dizilimi şu şekilde makro hatasız bitiyor, fakat yazıcıya çıktı gelmiyor. Sonra manuel olarak kontrol ettiğimde yazdırma sayfasında değil veri sayfasındaki ayarları düzenlemiş oluyor. Bir yerde mantık hatası yapıyorum ama nerede bulamadım.
 
Bir kaç farklı şekilde denemeler yaptım.

Dikkatimi çeken bir şey oldu. Sanki bu sendkey komutlarıyla birlikte makro çalışmaya devam ediyor gibi.
 
Geri
Üst