Aslında koddaki her yazdırma için exceli açtırıp kapatmaya gerek yok lakin donup kaldığı için böyle yaptım.Normalde bir kere Excel açılıp ilgili sayfalar ilgili yazıcıdan çıkarılır.Deneyin kod doğru çalışıyorsa onuda hallederiz.
En sona eski default printeri yapmayı unutmuşum.
Call yazan yerdeki end subun üst satırına
SetDefaultPrinter " " boşluk yerine standat yazıcı adı ekleyin.
Accessde Vba Kodu İle Kapalı Excel Dosyasını Yazdırmak
Ellerinize sağlık ilk fırsatta deneyeceğim
Visible önce true sonra false yapılmasının sebebi nedir
Visible önce true sonra false yapılmasının sebebi nedir
False yi tek tırnak ile pasif yapmıştım.
Çünkğ Excel hiç görünmesin diye lakin bundan dolayı pc donduğu için öyle bıraktım ve fazla deneyemedim zaman yetersizliğinden.
Çünkğ Excel hiç görünmesin diye lakin bundan dolayı pc donduğu için öyle bıraktım ve fazla deneyemedim zaman yetersizliğinden.
Bazen pc ye akıl sır ermiyor.
Korumalı excelde yazdırmada sıkıntı çıkıyor mu hani exceli açınca "Düzenlemeyi etkinleştir" diye mesaj çıkıyor
Korumalı excelde yazdırmada sıkıntı çıkıyor mu hani exceli açınca "Düzenlemeyi etkinleştir" diye mesaj çıkıyor
Kodları denedinizmi bilmiyorum.Fırsat bulmuşken kodları düzenledim.
Array ile yaptım ve her defasında excelin kapanıp açılmasına gerek kalmadı.
sayfalar = Array("Sayfa1", "Sayfa2") 'Buraya sayfa adlari gelecek
printerler = Array("Brother DCP-195C", "OneNote") 'Buraya printer adlari gelecek
Yukarıdakilr paralel olacak.Ben denedim hatasız çalıştı.
Array ile yaptım ve her defasında excelin kapanıp açılmasına gerek kalmadı.
sayfalar = Array("Sayfa1", "Sayfa2") 'Buraya sayfa adlari gelecek
printerler = Array("Brother DCP-195C", "OneNote") 'Buraya printer adlari gelecek
Yukarıdakilr paralel olacak.Ben denedim hatasız çalıştı.
Kod:
Option Compare Database
Const dosyaYol As String = "C:\Users\Zafer\Desktop\xxx.xlsx" 'Buraya Excelin dosya yolu zazilacak
Dim xlapp As Excel.Application
Private Sub Befehl0_Click()
Dim sayfalar
Dim printerler
Dim say As Integer
Set xlapp = CreateObject("Excel.Application")
sayfalar = Array("Sayfa1", "Sayfa2") 'Buraya sayfa adlari gelecek
printerler = Array("Brother DCP-195C", "OneNote") 'Buraya printer adlari gelecek
xlapp.Visible = True
xlapp.Workbooks.Open dosyaYol, True, False
For say = LBound(sayfalar) To UBound(sayfalar)
Call printYap(printerler(say), sayfalar(say))
Next
xlapp.Workbooks.Close
xlapp.Quit
Set xlapp = Nothing
SetDefaultPrinter "Brother DCP-195C" 'En sonda hangi printer default olacaksa onun adi olacak
Erase sayfalar: Erase printerler: say = Empty
End Sub
Kod:
Function printYap(ByVal PrintAd As String, ByVal sayfaAd As String)
xlapp.Sheets(sayfaAd).Select
SetDefaultPrinter PrintAd
xlapp.Sheets(sayfaAd).PrintOut
End Function
Konuyu Okuyanlar: 2 Ziyaretçi