1'den fazla sayfadaki isimleri tek olacak şekilde farklı sayfaya otomatik yazdırma

Katılım
26 Ekim 2022
Mesajlar
6
Excel Vers. ve Dili
Excell 2016-TR
Öncelikle merhaba arkadaşlar. Benim yeri geldiğinde artan ve ya azalan tablolarım var gidilen sefere göre azalıp artıyor. Bu sayfalardaki tablo aralığı B7 ve B24 Arası sabit olacak şekilde bu hücrelere isimleri giriyorum 7-8 tane böyle Sayfa1,Sayfa2,Sayfa3 diye gidiyor diyelim. Bu B7-B24 aralığındaki isimleri ayrı bir sayfada 1 kez olacak şekilde otomatik yazdırmak istiyorum. Yardımcı olabilir misiniz? Makrosuz oluyor mu bilmiyorum fakat makrosuz oluyorsa formülle de olabilir.
 

Mdemir63

Altın Üye
Katılım
7 Temmuz 2006
Mesajlar
2,862
Excel Vers. ve Dili
Ofis2010 32Bit Türkçe
Altın Üyelik Bitiş Tarihi
19-02-2026
Selamlar
Belirtiğiniz alanı seçin >Kopyalayın> Ayrı bir sayfaya yapıştırın>Yapıştırdığınız sayfada Ekle menüsünden>Yinelenenleri kaldır>Tamam
diyerek yapabilirsiniz.
 
Katılım
26 Ekim 2022
Mesajlar
6
Excel Vers. ve Dili
Excell 2016-TR
Selamlar
Belirtiğiniz alanı seçin >Kopyalayın> Ayrı bir sayfaya yapıştırın>Yapıştırdığınız sayfada Ekle menüsünden>Yinelenenleri kaldır>Tamam
diyerek yapabilirsiniz.
Hocam öncelikle teşekkür ederim. Ben de o şekilde yapıyorum şuanda. Fakat sayfa sayısı bazen 20'ye çıkıyor ayrı ayrı 20 sayfada o hücreleri seçip alt alta yapıştırması zulüm oluyor. Başka bir çözümü yok mudur bu işin acaba?
 

Mdemir63

Altın Üye
Katılım
7 Temmuz 2006
Mesajlar
2,862
Excel Vers. ve Dili
Ofis2010 32Bit Türkçe
Altın Üyelik Bitiş Tarihi
19-02-2026
Selamlar
inceleyiniz

indir
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,372
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Özet adlı bir sayfa ekleyin ve bu sayfayı silmeyin.
Aşağıdaki kodları bir modüle kopyalayıp, deneyiniz.

Kod:
Sub TekListele()

    Dim syf As Worksheet, _
        rng As Range, _
        r   As Range, _
        dic As New Dictionary, _
        key As Variant, _
        i   As Integer, _
        n   As Variant
        
    dic.CompareMode = TextCompare
    Sheets("Özet").Range("A1").CurrentRegion.Offset(1).ClearContents
    
    For Each syf In Worksheets
        If Not syf.Name = "Özet" Then
            Set rng = syf.Range("B7:B24")
            For Each r In rng
                n = r.Value
                If Not dic.Exists(n) Then
                    dic.Add r.Value, 0
                End If
            Next r
            Set rng = Nothing
        End If
    Next syf
    
    key = dic.Keys
    Sheets("Özet").Range("A2").Resize(dic.Count, 1) = Application.WorksheetFunction.Transpose(key)
    
End Sub
 
Katılım
26 Ekim 2022
Mesajlar
6
Excel Vers. ve Dili
Excell 2016-TR
Merhaba,

Özet adlı bir sayfa ekleyin ve bu sayfayı silmeyin.
Aşağıdaki kodları bir modüle kopyalayıp, deneyiniz.

Kod:
Sub TekListele()

    Dim syf As Worksheet, _
        rng As Range, _
        r   As Range, _
        dic As New Dictionary, _
        key As Variant, _
        i   As Integer, _
        n   As Variant
       
    dic.CompareMode = TextCompare
    Sheets("Özet").Range("A1").CurrentRegion.Offset(1).ClearContents
   
    For Each syf In Worksheets
        If Not syf.Name = "Özet" Then
            Set rng = syf.Range("B7:B24")
            For Each r In rng
                n = r.Value
                If Not dic.Exists(n) Then
                    dic.Add r.Value, 0
                End If
            Next r
            Set rng = Nothing
        End If
    Next syf
   
    key = dic.Keys
    Sheets("Özet").Range("A2").Resize(dic.Count, 1) = Application.WorksheetFunction.Transpose(key)
   
End Sub
Hocam teşekkür ederim fakat makro konsolunda kod hata veriyor. "compile error user-defined type not defined" hatası çıkıyor karşıma. Altın üye olup linkini paylaşacağım hocam oradan çözümü mutlaka buluruz diye düşünüyorum.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,372
Excel Vers. ve Dili
Ofis 365 Türkçe
vba penceresinde referanslardan vbscripting runtime modülünü işaretleyip öyle dener misiniz?
 
Üst