PDF yazdırmada Yazıcı koşulu ekleme

Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
Hayırlı günler arkadaşlar,
Aşağıdaki kodlar ile pdf azdırıyorum fakat yazıcı koşulu ekleyemedim ?

Kırmızı satırdaki kod ile tanımlama yapıyorum fakat yine de diğer yazıcıya gidiyor

Kod:
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long

Private Const SW_HIDE As Long = 0
Private Const SW_SHOWNORMAL As Long = 1
Private Const SW_SHOWMAXIMIZED As Long = 3
Private Const SW_SHOWMINIMIZED As Long = 2

Dim yol
Sub Yazdır()

Dim ds, a
Set ft = Sheets("FaturaTakip")
dosya = Cells(ActiveCell.Row, "E").Value

yol = ThisWorkbook.Path & "\Faturalar\" & dosya & ".pdf"
If Dir(yol) = "" Then MsgBox dosya & " Nolu Fatura Klasörde Bulunamadı!!!", vbCritical + vbOKOnly, "Hata": End

[COLOR="Red"][B]Application.ActivePrinter = ft.Range("J1")[/B][/COLOR]
'ShellExecute Application.hwnd, "open", yol, vbNullString, left(yol,3), SW_SHOWNORMAL

ShellExecute Application.hwnd, "print", yol, vbNullString, Left(yol, 3), SW_HIDE


End Sub
 
Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
Bu konuda herhangi bir fikri olan yokmudur?
 

halit3

Uzman
Uzman
Katılım
18 Ocak 2008
Mesajlar
12,788
Excel Vers. ve Dili
2003 excell türkçe
ve
2007 excell türkçe
Benim bilgisayarda

Kod:
Application.ActivePrinter = "Ne01: üzerindeki OneNote 2007'ye Gönder "
bu şekilde yazdırıyor

Kod:
Application.ActivePrinter = "Ne01: üzerindeki OneNote 2007'ye Gönder"
bu şekilde yazdırmıyor

Buradaki fark Göder yazısından sonraki boşluk belki sizinkide aynıdır.
 
Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
Benim bilgisayarda

Kod:
Application.ActivePrinter = "Ne01: üzerindeki OneNote 2007'ye Gönder "
bu şekilde yazdırıyor

Kod:
Application.ActivePrinter = "Ne01: üzerindeki OneNote 2007'ye Gönder"
bu şekilde yazdırmıyor

Buradaki fark Göder yazısından sonraki boşluk belki sizinkide aynıdır.
Halit bey merhaba,
Yzdırmada sorunum yok yazıcıya gidiyor fakat sürekli aynı yazıcıya gidiyor.
Sanırım pdf yazdırdığım için oluyor
 
Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
Sanırım sorun sistem varsayılan yazıcısını değiştirmede.
Onun için bu kodları kullanacağım :
CreateObject("WScript.Network").SetDefaultPrinter ft.Range("J1").Value

PAzartesi deneyeip bilgi vereceğim .
 
Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
Sanırım sorun sistem varsayılan yazıcısını değiştirmede.
Onun için bu kodları kullanacağım :
CreateObject("WScript.Network").SetDefaultPrinter ft.Range("J1").Value

PAzartesi deneyeip bilgi vereceğim .
Maalesef evdeki pcde sorun var sanıyordum fakat yazıcının bağlı olduğu pcde de aynı hatayı veriyor.
Hatta yazcı adı hatalı yazdığımı düşünerek aşağdaki kodu denedim yine hata veriyor.

Alternatif yol bulamadım

Kod:
Sub yaz()

yazıcı = Application.ActivePrinter
CreateObject("WScript.Network").SetDefaultPrinter yazıcı
End Sub
 
Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
Sorunumu çözdüm arkadaşlar.
Ekte videosu mevcuttur. Deneme amaçlı evdeki pcdeki sistem yazıcılarında denedim çalıştı. Sistemüzerinde varsayılan yazıcıyı değiştirebiliyorum.
Kodlar genişletilebilir ihtiyaca göre. Hayırlı akşamlar.

https://youtu.be/uY_0-ilFDY8
 
Son düzenleme:
Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
Örnek dosya...
İhtiyacı olanlar için...
 
Üst