• DİKKAT

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

Combobox1 te yazıcı listesi

  • Konbuyu başlatan Konbuyu başlatan heft
  • Başlangıç tarihi Başlangıç tarihi
Katılım
3 Haziran 2005
Mesajlar
371
Merhabalar,
Combobox1 e o bilgisayardaki yüklü yazıcı listesini aktarabilir miyiz?
 
Merhaba;

http://www.excel.web.tr/showthread.php?t=42583
WScript.Network & WScript.Shell Metot ve Özellikleri

Kod:
Sub Yazicilar()
Dim Wsh As WshNetwork, a As String, sor As Byte, i As Byte
 
Set Wsh = New WshNetwork
 
'Bilgisayara ait yazıcılar listesi
a = "Varsayılan yazıcıyı değiştirmek ister misiniz?" & Chr(10) & Chr(10) & _
"Değiştirmek isterseniz, 'OK' seçmeden önce bu listede görünen yazıcı kodunu yazın." & Chr(10) & Chr(10)
 
a = a & "Bağlı Yazıcılar..." & Chr(10)
 
For i = 0 To Wsh.EnumPrinterConnections.Count - 1
a = a & Chr(10) & i + 1 & "-) " & Wsh.EnumPrinterConnections(i)
Next
 
sor = Val(InputBox(a, "Excel", 1))
 
If sor = False Then Exit Sub
'Varsayılan yazıcının değişimi
Wsh.SetDefaultPrinter (Wsh.EnumPrinterConnections(sor - 1))
MsgBox "Yazıcı değiştirildi.", vbInformation, "Excel"
End Sub
 
yok beceremedim
bu yüzden ekli dosyayı gönderiyorum
bahsetiğim gibi varsayılan yazıcı seçili gelecek
diğerleri combobox1 de alt alta listenecek.
Hangi yazıcı seçilirse ona yazdıracak.
Yardımcı olabilir misiniz,Lütfen
 

Ekli dosyalar

Son düzenleme:
ALT F11 İle açılan vba penceresinden Tools Referencesi seçip browseden Referans dosyası : C:\WINDOWS\System32\wshom.ocx seçmelisiniz.
 
Merhaba,
ben de ilk dosyanızda ki form için Zeki beyin kodlarından birşeyler yapmıştım.
Sizin kodlarınız tüm printerleri listelemedi bende. İsterseniz ilk dosyanızdaki forma aşağıdaki kodları yapıştırp deneyin,
Kod:
Private Sub CommandButton1_Click()
 Dim WNT As WshNetwork
 Set WNT = CreateObject("WScript.Network")
  WNT.SetDefaultPrinter ComboBox1
  UserForm1.Printform 'print komutları
  Set WNT = Nothing
End Sub
Private Sub UserForm_Initialize()
Call Yazicilar
End Sub
Sub Yazicilar()
Dim Wsh As WshNetwork, i As Byte
 Set Wsh = New WshNetwork
For i = 0 To Wsh.EnumPrinterConnections.Count - 1
ComboBox1.AddItem Wsh.EnumPrinterConnections(i)
Next
ComboBox1 = ComboBox1.List(0)
Set Wsh = Nothing
End Sub

saygılar.
 
Selamlar,

2009 yılında şirket bünyesinde bir raporlama ekranında böyle bir çözüme ihtiyaç duymuştuk. Kendi raporlamamızda kullandığım örneği sizin için ekteki örnek dosyaya uyarladım. Alternatif olarak incelermisiniz.
 

Ekli dosyalar

Merhaba,
Korhan bey çok güzel bir çalışma. Benim dün gece evde yaptığım örnek, ilgili dosyanın register edilememesinden dolayı işyerinde çalışmadı. Teşekkür ederim, saygılar.
 
Merhabalar
yazdırmada bir sorun ile karşılaştım şöyle ki,
Sayfa1.UsedRange.PrintOut copies:=TextBox1, ActivePrinter:=ComboBox1 ait olduğu kitapta(B.xls) sorun yok.
Ancak yazdırılacak sayfa A.xls de Sayfa1 ise nasıl belirtmeliyiz?
 
Selamlar,

Aşağıdaki şekilde denermisiniz.

Kod:
Option Explicit
 
Sub YAZDIR()
    Windows("A.xls").Activate
    Sheets("Sayfa1").UsedRange.PrintOut Copies:=TextBox1, ActivePrinter:=ComboBox1
End Sub
 
Geri
Üst