• Bir süredir maillerde yaşanan sorunlar giderilmiştir. Şifremi unuttum yaparak şifrelerinizi mailinizden alabilirsiniz.

  • Foruma hoş geldin 👋 Ziyaretçi

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Çözüldü Yazıcı Seçimi ve Değiştirme

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

muammercaylak78

Yeni Üye
Kullanıcı Bilgileri
Aktiflik
Çevrimdışı
Katılım
12 Eki 2022
Mesajlar
73
Aldığı beğeni
7
Excel V
Office 2013 TR
Konuyu Başlatan
Selamün Aleyküm forumda içinde benzer konulara baktım benim işimi çözmedi . Sorum Şu hocam "Sayfa 1" Yazdır Butonuna Basıldığında "Sayfa2" deki bilgiler otomatik olarak "Xprinter XP-470B" yazıcıya göndermesi işlem bittikten sonra ise tekrar varsayılan yazıcıyı seçmesi "HB LaserJet Professional P1102" seçmesi. yardımlarınızı bekliyorum.

 
Sayfa2 yi direk "Xprinter XP-470B" yazıcısına gönderir.
Worksheets("Sayfa2").PrintOut ActivePrinter:= "Xprinter XP-470B"
 
"Sayfa 1" üzerindeki "Yazdır" butonuna tıklandığında, öncelikle "Sayfa2" üzerindeki verilerin "Xprinter XP-470B" yazıcısına gönderilmesi:

Sub YazdirButonu_Click()
Worksheets("Sayfa2").PrintOut ActivePrinter:="Xprinter XP-470B"
End Sub

Yazdırma işlemi tamamlandıktan sonra, varsayılan yazıcının "HB LaserJet Professional P1102" olarak geri değiştirilmesi:

Sub YazdirmaIslemiTamamlandi()
Application.ActivePrinter = "HB LaserJet Professional P1102"
End Sub

Bu iki adımı birbirine bağlamak için, "Sayfa 1" üzerindeki "Yazdır" butonuna tıklandığında, önce "Sayfa2" yazdırılmalı, ardından varsayılan yazıcı geri değiştirilmelidir:

Sub YazdirButonu_Click()
Worksheets("Sayfa2").PrintOut ActivePrinter:="Xprinter XP-470B"
YazdirmaIslemiTamamlandi
End Sub

Bu şekilde, "Sayfa 1" üzerindeki "Yazdır" butonuna basıldığında, "Sayfa2" otomatik olarak "Xprinter XP-470B" yazıcısına gönderilecek ve işlem tamamlandıktan sonra varsayılan yazıcı "HB LaserJet Professional P1102" olarak geri değiştirilecektir.

Önerdiğim çözümün işinize yarayacağını umuyorum
 
Private Sub CommandButton2_Click()
Dim spl As Worksheet
On Error Resume Next
yzctemizle
Set spl = Sheets("Liste")
Set yzc = Sheets("Etiket")

ss = spl.Cells(Rows.Count, 2).End(xlUp).Row - 1
If ss < 2 Then MsgBox "Yazdırılacak kayıt bulunamadı.", vbExclamation, "ExcelCozum.com": Exit Sub
Application.DisplayAlerts = False

For n = 1 To ListView1.ListItems.Count
If ListView1.ListItems(n).Checked Then
say = say + 1
sat = n + 1
With yzc
If say Mod (2) = 2 Then
yzctemizle
say2 = say2 + 1
.Cells(1, 1).Value = ListView1.ListItems(n).ListSubItems(2).Text
.Cells(2, 1).Value = ListView1.ListItems(n).ListSubItems(3).Text
Else
.Cells(1, 1).Value = ListView1.ListItems(n).ListSubItems(2).Text
.Cells(2, 1).Value = ListView1.ListItems(n).ListSubItems(3).Text
.PrintOut ActivePrinter:="Xprinter XP-470B"
End If

spl.Cells(sat, 16).Value = "EVET"
spl.Cells(sat, 2).Font.color = vbRed
spl.Cells(sat, 3).Font.color = vbRed
spl.Cells(sat, 4).Font.color = vbRed
spl.Cells(sat, 5).Font.color = vbRed
spl.Cells(sat, 6).Font.color = vbRed
spl.Cells(sat, 7).Font.color = vbRed
spl.Cells(sat, 8).Font.color = vbRed
spl.Cells(sat, 9).Font.color = vbRed
spl.Cells(sat, 10).Font.color = vbRed
spl.Cells(sat, 11).Font.color = vbRed
spl.Cells(sat, 12).Font.color = vbRed
spl.Cells(sat, 13).Font.color = vbRed
spl.Cells(sat, 14).Font.color = vbRed
spl.Cells(sat, 15).Font.color = vbRed
spl.Cells(sat, 16).Font.color = vbRed
spl.Cells(sat, 17).Font.color = vbRed

End With
End If
ListView1.ListItems(n).Checked = False
Next n
If say Mod (2) = 1 Then yzc.PrintOut ActivePrinter
Application.DisplayAlerts = True
If say > 0 Then
MsgBox say2 & " Adet Sayfada " & say & " Adet Kayıt Yazdırıldı.", vbInformation, "ExcelCozum.com"
Else
MsgBox "Hiçbir Sayfa Yazdırılmadı. Listeden Seçim Yapınız.", vbInformation, "ExcelCozum.com"
End If
Application.ActivePrinter = "HB LaserJet Professional P1102"
Call SipListele
End Sub
 
hocam yazmış oldugunuz kodları ekledim. baştaki "Xprinter XP-470B" yazıcı çalışıyor sorun yok onda işlem bitince Application.ActivePrinter = "HB LaserJet Professional P1102" varsıyalan yazıcıyı seçmiyor
 
Sub YazdirmaIslemiTamamlandi()
Application.ActivePrinter = "HB LaserJet Professional P1102"
Printer.SetDefaultPrinter "HB LaserJet Professional P1102"
End Sub

Bu şekilde, hem aktif yazıcıyı "HB LaserJet Professional P1102" olarak değiştirip, hem de varsayılan yazıcıyı aynı şekilde ayarlayabilirsiniz.

Sub SayfaBirYazdir()
' Sayfa 2 bilgilerini "Xprinter XP-470B" yazıcıya gönder
Application.ActivePrinter = "Xprinter XP-470B"
' Sayfa 2 içeriğini yazdır
' ...
' Yazdırma işlemi tamamlandı

' Varsayılan yazıcıyı "HB LaserJet Professional P1102" olarak değiştir
Printer.SetDefaultPrinter "HB LaserJet Professional P1102"
End Sub
 
hocam ilk seçmiş olduğu yazıcı seçili kalıyor. varsıyalan seçmiyor
ikinci msj da tüm kodları yazılıydı bir bakarmısınız yanlışı nerde yapıyorum

End With
End If
ListView1.ListItems(n).Checked = False
Next n
If say Mod (2) = 1 Then yzc.PrintOut ActivePrinter
Application.DisplayAlerts = True
If say > 0 Then
MsgBox say2 & " Adet Sayfada " & say & " Adet Kayıt Yazdırıldı.", vbInformation, "ExcelCozum.com"
Else
MsgBox "Hiçbir Sayfa Yazdırılmadı. Listeden Seçim Yapınız.", vbInformation, "ExcelCozum.com"
End If
Application.ActivePrinter = "HB LaserJet Professional P1102"
Call SipListele
 
hocam ben size dosyayı gönderdim bir bakarmısınız . varsayılan olarak seçmiyor. HB
 

Ekli dosyalar

  • etiket deneme.xlsm
    47.5 KB · Gösterim: 2
hocam ben size dosyayı gönderdim bir bakarmısınız . varsayılan olarak seçmiyor. HB
Hp yazıcı isminin sonunda bir adet boşluk olabilir. Bendeki yazıcılarda bu böyle. Sizde de olabilir.
"HB LaserJet Professional P1102" ifadesini "HB LaserJet Professional P1102 " olarak yazıp deneyin.
 
Kodlarda bir hata yok. Dolayısıyla yazıcı ismi üzerinde tereddütüm oldu.
Kullanılacak yazıcıyı "Aygıtlar ve yazıcılar" penceresinden seçtikten sonra...
immadiate penceresinde ?Application.ActivePrinter yazıp gelen ismi fare ile seçip almak ve kullanmak en doğrusu.
 
Durum
Konu Çözümlendiği İçin Kapatılmıştır.
Geri
Üst