Dosya İçerisindeki PDF' leri Sıralı Toplu Yazdırma

Katılım
25 Haziran 2006
Mesajlar
36
Excel Vers. ve Dili
Ofis 2010 ve 2016
Altın Üyelik Bitiş Tarihi
28.01.2020
İndirilenler klasörü içerinde bulunan pdf' leri toplu yazdırdığımda sıralı gönderdiğim halde yazıcıdan sıralı döküm alamıyorum PDF leri sıralı olarak yazıcıya 10 saniyede bir gönderebilecek bir makro var mı acaba teşekkürler
 

hasankardas

Altın Üye
Katılım
14 Ağustos 2006
Mesajlar
351
Excel Vers. ve Dili
Ofis 2021ProPlus TR 64 Bit
Altın Üyelik Bitiş Tarihi
18-01-2027
Yapay zeka ile oluşturdum denedim çalışıyor :)

Kod:
Sub YazdirVeBekle()

    Dim folderPath As String
    Dim pdfFile As String
    Dim shellCommand As String
    Dim waitTime As Double
    Dim secondsToWait As Double

    ' İndirilenler klasörünüzün yolunu buraya yazın
    folderPath = "D:\deneme\"
    
    ' Her dosyadan sonra kaç saniye beklemek istediğinizi ayarlayın
    secondsToWait = 10

    ' Klasördeki ilk PDF dosyasını bul
    pdfFile = Dir(folderPath & "*.pdf")
    
    ' Tüm PDF dosyalarını sırayla yazdır
    Do While pdfFile <> ""
        
        ' Yazdırma komutunu oluştur
        shellCommand = "cmd /c start /min AcroRd32.exe /t """ & folderPath & pdfFile & """"
        
        ' Shell komutu ile PDF dosyasını yazıcıya gönder
        Shell shellCommand, vbHide
        
        ' Bekleme süresi
        waitTime = Timer
        Do While Timer < waitTime + secondsToWait
            DoEvents ' Diğer işlemlerin gerçekleştirilmesine izin verir
        Loop
        
        ' Bir sonraki PDF dosyasını al
        pdfFile = Dir
    Loop

End Sub
 
Katılım
25 Haziran 2006
Mesajlar
36
Excel Vers. ve Dili
Ofis 2010 ve 2016
Altın Üyelik Bitiş Tarihi
28.01.2020
Yapay zeka ile oluşturdum denedim çalışıyor :)

Kod:
Sub YazdirVeBekle()

    Dim folderPath As String
    Dim pdfFile As String
    Dim shellCommand As String
    Dim waitTime As Double
    Dim secondsToWait As Double

    ' İndirilenler klasörünüzün yolunu buraya yazın
    folderPath = "D:\deneme\"
   
    ' Her dosyadan sonra kaç saniye beklemek istediğinizi ayarlayın
    secondsToWait = 10

    ' Klasördeki ilk PDF dosyasını bul
    pdfFile = Dir(folderPath & "*.pdf")
   
    ' Tüm PDF dosyalarını sırayla yazdır
    Do While pdfFile <> ""
       
        ' Yazdırma komutunu oluştur
        shellCommand = "cmd /c start /min AcroRd32.exe /t """ & folderPath & pdfFile & """"
       
        ' Shell komutu ile PDF dosyasını yazıcıya gönder
        Shell shellCommand, vbHide
       
        ' Bekleme süresi
        waitTime = Timer
        Do While Timer < waitTime + secondsToWait
            DoEvents ' Diğer işlemlerin gerçekleştirilmesine izin verir
        Loop
       
        ' Bir sonraki PDF dosyasını al
        pdfFile = Dir
    Loop

End Sub
teşekkürler bilgisayarda sürücü görünmüyor yazılacak dosyaların yeri ağda dosya aratarak seçtiğimiz dosyadakileri yazdırabilirmiyiz
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
681
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
Merhaba,

Üstteki kodda bulunan adres satırı klasör seçme ile değiştirildi.

Kod:
Sub YazdirVeBekle()

    Dim folderPath As String
    Dim pdfFile As String
    Dim shellCommand As String
    Dim waitTime As Double
    Dim secondsToWait As Double
    Dim fd As FileDialog
    Dim selectedFolder As Variant

    ' Klasör seçmek için FileDialog'u kullan
    Set fd = Application.FileDialog(msoFileDialogFolderPicker)
    
    ' FileDialog açılır ve kullanıcıdan klasör seçmesi istenir
    If fd.Show = -1 Then ' Eğer kullanıcı klasör seçerse
        folderPath = fd.SelectedItems(1) & "\" ' Seçilen klasör yolu
    Else
        MsgBox "Klasör seçilmedi.", vbExclamation
        Exit Sub
    End If
    
    ' Her dosyadan sonra kaç saniye beklemek istediğinizi ayarlayın
    secondsToWait = 10

    ' Klasördeki ilk PDF dosyasını bul
    pdfFile = Dir(folderPath & "*.pdf")
    
    ' Tüm PDF dosyalarını sırayla yazdır
    Do While pdfFile <> ""
        
        ' Yazdırma komutunu oluştur
        shellCommand = "cmd /c start /min AcroRd32.exe /t """ & folderPath & pdfFile & """"
        
        ' Shell komutu ile PDF dosyasını yazıcıya gönder
        Shell shellCommand, vbHide
        
        ' Bekleme süresi
        waitTime = Timer
        Do While Timer < waitTime + secondsToWait
            DoEvents ' Diğer işlemlerin gerçekleştirilmesine izin verir
        Loop
        
        ' Bir sonraki PDF dosyasını al
        pdfFile = Dir
    Loop

End Sub
 
Katılım
25 Haziran 2006
Mesajlar
36
Excel Vers. ve Dili
Ofis 2010 ve 2016
Altın Üyelik Bitiş Tarihi
28.01.2020
Çok teşekkürler eline sağlık mükemmel çalışıyor (ada göre yazdırıyor)
 
Son düzenleme:
Katılım
25 Haziran 2006
Mesajlar
36
Excel Vers. ve Dili
Ofis 2010 ve 2016
Altın Üyelik Bitiş Tarihi
28.01.2020
PDF dosyalarının oluşturulma tarihine göre sıralı nasıl yazdırılabilir.
 
Son düzenleme:
Katılım
25 Haziran 2006
Mesajlar
36
Excel Vers. ve Dili
Ofis 2010 ve 2016
Altın Üyelik Bitiş Tarihi
28.01.2020
PDF dosyalarının oluşturulma tarihine göre sıralı nasıl yazdırılabilir.
 
Katılım
25 Haziran 2006
Mesajlar
36
Excel Vers. ve Dili
Ofis 2010 ve 2016
Altın Üyelik Bitiş Tarihi
28.01.2020
Merhaba,

Üstteki kodda bulunan adres satırı klasör seçme ile değiştirildi.

Kod:
Sub YazdirVeBekle()

    Dim folderPath As String
    Dim pdfFile As String
    Dim shellCommand As String
    Dim waitTime As Double
    Dim secondsToWait As Double
    Dim fd As FileDialog
    Dim selectedFolder As Variant

    ' Klasör seçmek için FileDialog'u kullan
    Set fd = Application.FileDialog(msoFileDialogFolderPicker)
   
    ' FileDialog açılır ve kullanıcıdan klasör seçmesi istenir
    If fd.Show = -1 Then ' Eğer kullanıcı klasör seçerse
        folderPath = fd.SelectedItems(1) & "\" ' Seçilen klasör yolu
    Else
        MsgBox "Klasör seçilmedi.", vbExclamation
        Exit Sub
    End If
   
    ' Her dosyadan sonra kaç saniye beklemek istediğinizi ayarlayın
    secondsToWait = 10

    ' Klasördeki ilk PDF dosyasını bul
    pdfFile = Dir(folderPath & "*.pdf")
   
    ' Tüm PDF dosyalarını sırayla yazdır
    Do While pdfFile <> ""
       
        ' Yazdırma komutunu oluştur
        shellCommand = "cmd /c start /min AcroRd32.exe /t """ & folderPath & pdfFile & """"
       
        ' Shell komutu ile PDF dosyasını yazıcıya gönder
        Shell shellCommand, vbHide
       
        ' Bekleme süresi
        waitTime = Timer
        Do While Timer < waitTime + secondsToWait
            DoEvents ' Diğer işlemlerin gerçekleştirilmesine izin verir
        Loop
       
        ' Bir sonraki PDF dosyasını al
        pdfFile = Dir
    Loop

End Sub
PDF dosyalarının oluşturulma tarihine göre sıralı nasıl yazdırılabilir.
 

RBozkurt

𐱅𐰇𐰼𐰚
Altın Üye
Katılım
10 Ocak 2018
Mesajlar
681
Excel Vers. ve Dili
Microsoft Office 2024
Google Sheets
Altın Üyelik Bitiş Tarihi
19-12-2026
PDF dosyalarının oluşturulma tarihine göre sıralı nasıl yazdırılabilir.

Denemedim, yapay zeka üretimi

Kod:
Sub YazdirVeBekle()

    Dim folderPath As String
    Dim pdfFile As String
    Dim shellCommand As String
    Dim waitTime As Double
    Dim secondsToWait As Double
    Dim fd As FileDialog
    Dim selectedFolder As Variant
    Dim fileArray() As String
    Dim fileDateArray() As Date
    Dim fileCount As Integer
    Dim i As Integer, j As Integer
    Dim tempStr As String
    Dim tempDate As Date

    ' Klasör seçmek için FileDialog'u kullan
    Set fd = Application.FileDialog(msoFileDialogFolderPicker)
    
    ' FileDialog açılır ve kullanıcıdan klasör seçmesi istenir
    If fd.Show = -1 Then ' Eğer kullanıcı klasör seçerse
        folderPath = fd.SelectedItems(1) & "\" ' Seçilen klasör yolu
    Else
        MsgBox "Klasör seçilmedi.", vbExclamation
        Exit Sub
    End If
    
    ' Her dosyadan sonra kaç saniye beklemek istediğinizi ayarlayın
    secondsToWait = 10

    ' İlk PDF dosyasını bul
    pdfFile = Dir(folderPath & "*.pdf")
    
    ' Dosyaları ve tarihlerini diziye al
    fileCount = 0
    Do While pdfFile <> ""
        fileCount = fileCount + 1
        ReDim Preserve fileArray(1 To fileCount)
        ReDim Preserve fileDateArray(1 To fileCount)
        fileArray(fileCount) = pdfFile
        fileDateArray(fileCount) = FileDateTime(folderPath & pdfFile)
        pdfFile = Dir
    Loop
    
    ' Dosyaları tarihe göre sıralama (Bubble Sort)
    For i = 1 To fileCount - 1
        For j = i + 1 To fileCount
            If fileDateArray(i) < fileDateArray(j) Then
                ' Dosyaları değiştir
                tempStr = fileArray(i)
                fileArray(i) = fileArray(j)
                fileArray(j) = tempStr
                
                ' Tarihleri değiştir
                tempDate = fileDateArray(i)
                fileDateArray(i) = fileDateArray(j)
                fileDateArray(j) = tempDate
            End If
        Next j
    Next i
    
    ' Tüm PDF dosyalarını sırayla yazdır
    For i = 1 To fileCount
        
        ' Yazdırma komutunu oluştur
        shellCommand = "cmd /c start /min AcroRd32.exe /t """ & folderPath & fileArray(i) & """"
        
        ' Shell komutu ile PDF dosyasını yazıcıya gönder
        Shell shellCommand, vbHide
        
        ' Bekleme süresi
        waitTime = Timer
        Do While Timer < waitTime + secondsToWait
            DoEvents ' Diğer işlemlerin gerçekleştirilmesine izin verir
        Loop
        
    Next i

End Sub
 
Katılım
25 Haziran 2006
Mesajlar
36
Excel Vers. ve Dili
Ofis 2010 ve 2016
Altın Üyelik Bitiş Tarihi
28.01.2020
Maalesef olmadı rast gele gönderiyor
 
Üst