Soru Toplu tebligat gönderme

Katılım
31 Mayıs 2009
Mesajlar
13
Excel Vers. ve Dili
2007 Türkçe
Ekte sunduğum dosyada kendi çabalarımla bir çalışma yapmaya çalıştım. Dosyadaki mazbata sge ekli ve eksiz sayfalarını listedeki verilerle toplu yazdırabilirmiyim. Sge ekli sayfasında yaptığım sayfa ilerleme olayını sge eksiz sayfasında da yapmak istiyorum. Hem tek tek veri çekip hemde toplu yazdırmak amacım.

 
Son düzenleme:

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
994
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Dosyanızı her niyeyse onararak açabildim.Bazı şeyler kayboldu herhalde .Sayfa ilerleme olayı gözükmüyor bende
Siz zaten dosyanızda formülle çağırıp işlemlerinizi yapmaktasınız.Siizin isteğiniz
Ekli Sge Mazbata - Sge Tebliğ Ekli - Sge Tebliğ Eksiz sayfalarının içeriğini liste sayfasından çağırıp
sonrasında otomatik olarak makro ile doldurmak sırasıyla bu 3 sayfayı yazdırmakmı istiyorsunuz vya böyle değilse örnek vererek yapmak istediğinizi manuel olarak açıklayınızx
 
Katılım
31 Mayıs 2009
Mesajlar
13
Excel Vers. ve Dili
2007 Türkçe
Aynen hocam bu üç sayfayıda toplu olarak listedeki verileri çağırarak yazdırmak istiyorum
 

RBozkurt

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

Bence; tebligat sayfasını word ortamında hazırlayın ve excel listesini posta birleştirme kısmından ilgili word dosyasına bağlayın.
Örneğin listede 100 tane kişi var. 10 15 sn gibi bir sürede tüm sayfaları hazırlamış olursunuz..

///

Alta word dosyası ekledim. Önce şablonu ayarlayın. Sonra excelde gönderilecek verilerin olduğu listeyi, hazırlanan boş şablonu ve örnek olacak dolu şablon ekleyin. Hazırlayım.

Word Şablon

Fason liste

Sadece Word dosyasını düzenleyip atarsanız listeyi bağlarım.
Hangi kutuya hangi hücre gelecek A1 B1 C1 ne nereye gibi...
İşlem çok basit.
Word postalar diye de araştırabilirsiniz.
 
Son düzenleme:

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
994
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Dosyanızın tamamı çalışır vaziyette. Bu linkten indiriniz.geri dönüş yapmayı unutmayınız

Excel'de, Sge_Tebliğ_Ekli sayfasına gidin.
N19 hücresine ve altındaki hücrelere yazdırmak istediğiniz sayfa adlarını doğru bir şekilde yazın.
Örnek: N19'a Ekli_Sge_Mazbata, N20'ye Sge_Tebliğ_Ekli yazın.
Bu liste boş bırakılırsa, makro hiçbir sayfa yazdırmaz.

Dosyanız libre oficeden çevrildiği için açılışta yükleme yavaş olmaktadır
Siz makroyu dosyanıza kopyalayıp kullanınız
 
Son düzenleme:
Katılım
31 Mayıs 2009
Mesajlar
13
Excel Vers. ve Dili
2007 Türkçe
Hocam ellerine sağlık tam istediğim gibi olmuş ancak libre Office kaynaklı bir sıkıntı var sayfa isimlerini ne yazarsam yazayım sge tebliğ ekli sayfasının kayıtlarını yazdırıyor. Bunun için her sayfada bu makroyu kopyalayıp yazmam mı gerekir
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
994
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Kod:
Sub DilekceleriYazdirDinamik_Yeni()
    Dim wsListe As Worksheet
    Dim sonSatir As Long
    Dim i As Long
    
    Dim sayfalar As Variant
    sayfalar = Array("Ekli_Sge_Mazbata", "Sge_Tebliğ_Ekli", "Sge_Tebliğ_Eksiz")
    
    On Error Resume Next
    Set wsListe = ThisWorkbook.Sheets("Liste")
    On Error GoTo 0
    
    If wsListe Is Nothing Then
        MsgBox "'Liste' isimli sayfa bulunamadı!", vbCritical
        Exit Sub
    End If
    
    sonSatir = wsListe.Cells(wsListe.Rows.Count, "A").End(xlUp).Row
    
    Application.ScreenUpdating = False
    
    For i = 2 To sonSatir
        
        If wsListe.Cells(i, "A").Value <> "" And wsListe.Cells(i, "B").Value <> "" Then
            
            For Each sayfaAdi In sayfalar
                On Error Resume Next
                Sheets(sayfaAdi).PrintOut Copies:=1
                If Err.Number <> 0 Then
                    MsgBox "Yazdırılmak istenen '" & sayfaAdi & "' isimli sayfa bulunamadı!", vbExclamation
                    Err.Clear
                End If
                On Error GoTo 0
            Next sayfaAdi
        End If
    Next i
    
    Application.ScreenUpdating = True
    
    MsgBox "Tüm dilekçeler ve ek sayfaları yazıcıya gönderildi!", vbInformation

End Sub
Sayfa isimlerini kod içine yazdım birde böyle deneyiniz
Böylece, makroyu her çalıştırdığınızda, belirlediğiniz sayfaları yazdırmak için Sge_Tebliğ_Ekli sayfasına bağımlı kalmayacaksınız.
 
Katılım
31 Mayıs 2009
Mesajlar
13
Excel Vers. ve Dili
2007 Türkçe
Evde Office programında denediğimde sorunsuz çalışıyordu libre Office de sıkıntı verdi
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
994
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
Maalesef sağladığınız excel kodu, Microsoft Excel'e özel bir dildir ve LibreOffice'te doğrudan çalışmaz. Bu durumun nedeni, Excel ve LibreOffice'in kendi programlama dillerine ve API'lerine sahip olmasıdır.kod LibreOffice'te doğru bir şekilde yorumlanamıyor ve muhtemelen hiçbir işlem yapmıyor ya da varsayılan bir sayfa üzerinden hata veriyor. LibreOffice'te aynı işlemi yapmak için kodu LibreOffice Basic diline çevirmeniz gerekir

Kod:
Sub DilekceleriYazdirDinamik_Yeni_LibreOffice()

    Dim oDoc As Object
    Dim oSheet As Object
    Dim oSheets As Object
    Dim oUsedRange As Object
    Dim sonSatir As Long
    Dim i As Long
    Dim sayfaAdi As Variant
    
    Dim sayfalar As Variant
    sayfalar = Array("Ekli_Sge_Mazbata", "Sge_Tebliğ_Ekli", "Sge_Tebliğ_Eksiz")

    oDoc = ThisComponent
    oSheets = oDoc.getSheets()
    
    On Error GoTo ListeSayfasiYok
    oSheet = oSheets.getByName("Liste")
    On Error GoTo 0
    
    oUsedRange = oSheet.getSpreadsheet().getUsedRange()
    sonSatir = oUsedRange.getRows().getCount()

    oDoc.lockControllers()

    For i = 1 To sonSatir
        
        If oSheet.getCellByPosition(0, i).getString() <> "" And oSheet.getCellByPosition(1, i).getString() <> "" Then
        
            For Each sayfaAdi In sayfalar
                On Error GoTo SayfaYazdirmaHatasi
                
                oSheets.getByName(sayfaAdi).Print (Array())
                
                On Error GoTo 0
            Next sayfaAdi
        End If
    Next i

    oDoc.unlockControllers()
    MsgBox "Tüm dilekçeler ve ek sayfaları yazıcıya gönderildi!", 64

    Exit Sub

ListeSayfasiYok:
    MsgBox "'Liste' isimli sayfa bulunamadı!", 16
    Exit Sub

SayfaYazdirmaHatasi:
    MsgBox "Yazdırılmak istenen '" & sayfaAdi & "' isimli sayfa bulunamadı!", 48
    Err.Clear
    Resume Next

End Sub
Deneyiniz
 
Son düzenleme:
Katılım
31 Mayıs 2009
Mesajlar
13
Excel Vers. ve Dili
2007 Türkçe
sonSatir = oSheet.getUsedRange().Rows.Count
Bu satırda BASIC çalışma zamanı hatası '423' özellik ya da yöntem bulunamadı: getUsedRange hatası verdi hocam
 

muhasebeciyiz

Altın Üye
Katılım
10 Şubat 2006
Mesajlar
994
Excel Vers. ve Dili
Office 2016
64 Bit
Altın Üyelik Bitiş Tarihi
21-12-2027
15 nolu mesaj yenilenmiştir.Deneyiniz
 
Üst