Combobox a yazıcı tanımlama

Katılım
19 Nisan 2007
Mesajlar
337
Excel Vers. ve Dili
Excel 2003 Türkçe
Bilgcisayarımda iki tane yazıcı yüklü
userform üzerindeki combobox'a Bilgisayardaki bu yazıcılar yüklenecek.
Seçilen yazıcıdan Textbox1 'e girilen sayı kadar sayfa3 aktif edilip çıktı alınacak .
Bu konuda yardımcı olabilirmisiniz?
 
Katılım
19 Nisan 2007
Mesajlar
337
Excel Vers. ve Dili
Excel 2003 Türkçe
İlgili linkten aldığım kodlarla combobox'a yüklü yazıcılar alındı.

Kod:
Private Sub UserForm_Initialize()
    Dim PrinterList As String, oSystem As Object, oPrinter As Object
    Dim i As Single
    Set oSystem = GetObject("winmgmts:").instancesOf("Win32_Printer")
'Aktif Bilgisayardaki Yazıcı Listesini Combobox1 e alır
    For Each oPrinter In oSystem
        ComboBox1.AddItem oPrinter.Name
    Next
Set oSystem = Nothing
End sub
Ancak Aktif sayfayı Butonla yazdırmak için kullandığım kodu ayarlayamadım

Kod:
Private Sub CommandButton2_Click()
'Yazdır
If TextBox1 = "" Then
MsgBox "Kopya Sayısını Giriniz...!!!"
Else
Worksheets("sayfa1").Select
'     Resim Ekleme Kodları
      adres = ThisWorkbook.Path()
      ActiveSheet.Shapes.AddShape(msoShapeRectangle, 20, 25, 45#, 60).Select
      Selection.Name = "resim"
      Selection.ShapeRange.Fill.UserPicture adres & "\logo.JPG"
      ActiveSheet.Shapes("resim").Select
      Selection.ShapeRange.Line.ForeColor.SchemeColor = 9
      Range("A1").Select
[COLOR=red]ActiveWindow.SelectedSheets.PrintOut copies, ComboBox1.Value = TextBox1.Value[/COLOR]
      ActiveSheet.Shapes("resim").Select
      Selection.Delete
      Range("A1").Select
'Unload Me
End If
End Sub
 
Katılım
19 Nisan 2007
Mesajlar
337
Excel Vers. ve Dili
Excel 2003 Türkçe
Excelin kendi dialog penceresi ile çözümü buldum. Teşekkürler
Kod:
Application.Dialogs(xlDialogPrinterSetup).Show
ActiveWindow.SelectedSheets.PrintOut Copies:=TextBox1.Value, Collate:=True
Yukarıdaki kırmızı yazılı kod yerine bu kodlar gelecek.
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,375
Excel Vers. ve Dili
Office 365 (64 bit) - Türkçe
Şunu da kaullanabilirsiniz..

Aktif sayfayı combodaki printer ile textbox kopya sayısı kadar yazdır..

Kod:
ActiveSheet.PrintOut copies:=textbox1, ActivePrinter:=combobox1
 
Katılım
19 Nisan 2007
Mesajlar
337
Excel Vers. ve Dili
Excel 2003 Türkçe
Hocam Teşekkürler
 
Üst