DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Hocam tüm örnekleri inceledim ama benim listeme uygun bir örnek bulamadım. Çünkü bazı örnekler sadece bir sütunu listeliyor, bazıları benim istediğim gibi birden fazla hücreyi kopyalıyor fakat benzersiz kayıtları süzmüyor. Rica etsem ekteki örneği inceler misiniz. Çünkü 3 hücre toplam sayfasına listelenecek, benzersiz kayıtlar kimlik numarasına göre belirlenecek.
Sub Benzersiz()
Application.ScreenUpdating = False
Set s1 = Sheets("TOPLAM")
s1.Range("B8:D" & Rows.Count).ClearContents
For i = 2 To Sheets.Count
ss = Sheets(i).Cells(Rows.Count, 4).End(3).Row
ss1 = s1.Cells(Rows.Count, 2).End(3).Row + 1
Sheets(i).Range("B8:D" & ss).Copy s1.Range("B" & ss1)
Next i
s1.Range("B8:D" & Cells(Rows.Count, 4).End(3).Row).RemoveDuplicates 1, xlNo
Application.ScreenUpdating = True
End Sub
Hocam teşekkür ederim harika bir çalışma olmuş. Sanırım eklemeyi unuttuğum bir şey oldu. Eklediğim örnekte 4 ay var ama asıl listem Ocak ile Aralık ayları arasında 12 ay var. Bir de aralığı B8 ile D500 arasında yapmak istersek nasıl düzenleme yapabiliriz. Ben koddaki "B8Merhaba,
@Korhan Ayhan üstadın affına sığınarak, aşağıdaki kodu öneriyorum.
C++:Sub Benzersiz() Application.ScreenUpdating = False Set s1 = Sheets("TOPLAM") s1.Range("B8:D" & Rows.Count).ClearContents For i = 2 To Sheets.Count ss = Sheets(i).Cells(Rows.Count, 4).End(3).Row ss1 = s1.Cells(Rows.Count, 2).End(3).Row + 1 Sheets(i).Range("B8:D" & ss).Copy s1.Range("B" & ss1) Next i s1.Range("B8:D" & Cells(Rows.Count, 4).End(3).Row).RemoveDuplicates 1, xlNo Application.ScreenUpdating = True End Sub
Üstad çalışma sayfasında Ocak-Aralık arasındaki aylardan başka çok farklı sayfalar var. Kodu çalıştırdığımda o sayfalardan da veri çekiyor. O yüzden sayfa aralığı belirtmemiz gerekiyor.Merhaba,
Kodda hiçbir değişiklik yapmanıza gerek yok.
Sayfa ve sayfalara satır ekledikçe kod onları algılayacak şekilde düzenlendi.
Üstad A sütununa sıra numarası eklemek istediğimde verileri A sütunundan almaya başlıyor ve bu defa da D sütununu almıyor. Kontrol edebillr misiniz.Bu dosyada ise istenen sayfalardan (kod içinde belirterek) benzersiz liste oluşturulmaktadır.
Sub Benzersiz()
Application.ScreenUpdating = False
Set s1 = Sheets("TOPLAM")
s1.Range("A8:D" & Rows.Count).ClearContents
myArr = Array("OCAK", "ŞUBAT", "MART", "NİSAN", "MAYIS", "HAZİRAN", "TEMMUZ", "AĞUSTOS", "EYLÜL", "EKİM", "KASIM", "ARALIK")
For k = 0 To 11
For i = 1 To Sheets.Count
If Sheets(i).Name = myArr(k) Then
ss = Sheets(i).Cells(Rows.Count, 4).End(3).Row
ss1 = s1.Cells(Rows.Count, 2).End(3).Row + 1
Sheets(i).Range("B8:D" & ss).Copy s1.Range("B" & ss1)
End If
Next i
Next k
s1.Range("B8:D" & Cells(Rows.Count, 4).End(3).Row).RemoveDuplicates 1, xlNo
s1.Range("A8") = 1
s1.Range("A8:A" & Cells(Rows.Count, 2).End(3).Row).DataSeries
s1.Range("B8:D" & Cells(Rows.Count, 4).End(3).Row).Sort Key1:=[B1], Order1:=1
Application.ScreenUpdating = True
End Sub
Elinize sağlık hocam mükemmel olmuş. Çok teşekkür ederim.Merhaba,
Soru/sorun aynı. Sorularımızı eksik soruyor, örnek dosyamızı sorumuza/sorunumuza uygun hazırlamıyoruz.
#1 numaralı mesajınıza ekli örnek dosyanız sadece Ocak-Mayıs aylarını içeriyor ve kişilerden(sadece ad) oluşuyor.
#3 numaralı mesajınıza ekli örnek dosyanız yine Ocak-Mayıs aylarını içeriyor, kimlik numarası, adı, soyadı var ve benzersiz kayıtlar kimlik numarasına göre belirlenecekmiş.
#5 numaralı mesajınızda “...Sanırım eklemeyi unuttuğum bir şey oldu. Eklediğim örnekte 4 ay var ama asıl listem Ocak ile Aralık ayları arasında 12 ay var...” diyorsunuz. Bu durumu varsayıp, Ocak-Aralık olmalı diye tahminde bulunup tüm ayları kapsayacak şekilde kod yazıyoruz.
#7 numaralı mesajınızdan anlıyoruz ki; “...Ocak-Aralık arasındaki aylardan başka çok farklı sayfalar var...” mış. Bunu tahmin edemedik.
#10 numaralı mesajınızdan ise “...A sütununa sıra numarası eklemek ...” istediğinizi anlıyoruz.
Bütün bunları ilk mesajınızda ve ilk örnek dosyanızda belirtmeliydiniz.
Neyse, aşağıdaki kod umarım isteğinizi karşılar.
C++:Sub Benzersiz() Application.ScreenUpdating = False Set s1 = Sheets("TOPLAM") s1.Range("A8:D" & Rows.Count).ClearContents myArr = Array("OCAK", "ŞUBAT", "MART", "NİSAN", "MAYIS", "HAZİRAN", "TEMMUZ", "AĞUSTOS", "EYLÜL", "EKİM", "KASIM", "ARALIK") For k = 0 To 11 For i = 1 To Sheets.Count If Sheets(i).Name = myArr(k) Then ss = Sheets(i).Cells(Rows.Count, 4).End(3).Row ss1 = s1.Cells(Rows.Count, 2).End(3).Row + 1 Sheets(i).Range("B8:D" & ss).Copy s1.Range("B" & ss1) End If Next i Next k s1.Range("B8:D" & Cells(Rows.Count, 4).End(3).Row).RemoveDuplicates 1, xlNo s1.Range("A8") = 1 s1.Range("A8:A" & Cells(Rows.Count, 2).End(3).Row).DataSeries s1.Range("B8:D" & Cells(Rows.Count, 4).End(3).Row).Sort Key1:=[B1], Order1:=1 Application.ScreenUpdating = True End Sub