DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Sub Kod()
Set S1 = Sheets("1")
Set s2 = Sheets("2")
S1.Range("A:A").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=s2.Range("A1"), Unique:=True
End Sub
Sub Kopya()
Application.ScreenUpdating = False
Dim s1 As Worksheet: Dim s2 As Worksheet
Set s1 = Sheets("1"): Set s2 = Sheets("2")
son = s1.Cells(36355, "A").End(3).Row
s2.Range("A1:A" & Rows.Count).Cells.Clear
s1.Range("A1:A" & son).Select
Selection.Copy
s2.Select
s2.Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
Doğru anlamışsam A sütunundaki kayıtları benzersiz liste olarak almak istiyorsunuz. Bunun için aşağıdaki kodu kullanabilirsiniz.
Alternatif olarak veri sekmesinden gelişmiş filtre seçeneklerini de kullanabilirsiniz.
Eğer istediğiniz olmazsa örnek dosyanızın 2. sayfasına görmek istediğiniz sonucu ekleyiniz.PHP:Sub Kod() Set S1 = Sheets("1") Set s2 = Sheets("2") S1.Range("A:A").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=s2.Range("A1"), Unique:=True End Sub
İyi çalışmalar...
Sub Kod()
Set s1 = Sheets("1")
Set s2 = Sheets("2")
s1.Range("A:A").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=s2.Range("A1"), Unique:=True
s2.Range("B1") = "SAYISI"
For a = 2 To s2.Cells(s2.Rows.Count, "A").End(3).Row
s2.Cells(a, "B") = WorksheetFunction.CountIf(s1.Range("A:A"), s2.Cells(a, "A"))
Next
End Sub
Tekrar merhaba,
Aşağıdaki makro kodları örnek dosyanızda belirttiğiniz sonucu veriyor, deneyiniz...
PHP:Sub Kod() Set s1 = Sheets("1") Set s2 = Sheets("2") s1.Range("A:A").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=s2.Range("A1"), Unique:=True s2.Range("B1") = "SAYISI" For a = 2 To s2.Cells(s2.Rows.Count, "A").End(3).Row s2.Cells(a, "B") = WorksheetFunction.CountIf(s1.Range("A:A"), s2.Cells(a, "A")) Next End Sub
Sub kopyala()
Application.ScreenUpdating = False
Dim s1 As Worksheet: Dim s2 As Worksheet: Dim i As Integer
Set s1 = Sheets("1"): Set s2 = Sheets("2")
s2.Range("A2:B" & Rows.Count).Cells.Clear
s1.Select
s1.Range("A1:A" & Rows.Count).Cells.AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=s2.Range("A1"), Unique:=True
son1 = s1.Cells(65335, "A").End(3).Row
son2 = s2.Cells(65335, "A").End(3).Row
For i = 2 To son2
s2.Cells(i, 2) = WorksheetFunction.CountIf(s1.Range("A2:A" & son1), s2.Range("A" & i))
Next i
Application.ScreenUpdating = True
End Sub
1 nolu sayfadaki verilerden birini satır sil yapmadan sildiğiniz zaman filtrede ne çıktığına bakar mısınız?1 numaralı sayfada adı bölümünü filtre yaptığımda Tümünü Seç hariç o filtrede ne çıkıyorsa resimdede kare içerisine aldığım yeri 2 nolu sayfaya kopyalamak istiyorum
Set s2 = Sheets("2")
s2.Range("A:B").ClearContents
Sub Kod()
Set s1 = Sheets("1")
Set s2 = Sheets("2")
s2.Range("A:B").ClearContents
s2.Range("A1") = "ADI"
s2.Range("B1") = "SAYISI"
x = 2
For a = 2 To s1.Cells(s1.Rows.Count, "A").End(3).Row
If WorksheetFunction.CountIf(s1.Range("A2:A" & a), s1.Cells(a, "A")) = 1 Then
s2.Cells(x, "A") = s1.Cells(a, "A")
s2.Cells(x, "B") = WorksheetFunction.CountIf(s1.Range("A:A"), s1.Cells(a, "A"))
x = x + 1
End If
Next
End Sub
Sayın @RedStar konuyu filtre olarak sorduğunuz için hep filtre üzerinden çözüm üretmeye çalıştım, ancak zannedersem sizin çözümünüz aşağıdaki şekildedir, deneyiniz.
İyi çalışmalar diliyorum...
PHP:Sub Kod() Set s1 = Sheets("1") Set s2 = Sheets("2") s2.Range("A:B").ClearContents s2.Range("A1") = "ADI" s2.Range("B1") = "SAYISI" x = 2 For a = 2 To s1.Cells(s1.Rows.Count, "A").End(3).Row If WorksheetFunction.CountIf(s1.Range("A2:A" & a), s1.Cells(a, "A")) = 1 Then s2.Cells(x, "A") = s1.Cells(a, "A") s2.Cells(x, "B") = WorksheetFunction.CountIf(s1.Range("A:A"), s1.Cells(a, "A")) x = x + 1 End If Next End Sub
Sub Kod()
Set s1 = Sheets("Anasayfa")
Set s2 = Sheets("Olay")
s2.Range("A:B").ClearContents
s2.Range("A1") = "ADI"
s2.Range("B1") = "SAYISI"
x = 2
For a = 2 To s1.Cells(s1.Rows.Count, "K").End(3).Row
If WorksheetFunction.CountIf(s1.Range("K2:K1500" & k), s1.Cells(k, "K")) = 1 Then
s2.Cells(x, "A") = s1.Cells(k, "K")
s2.Cells(x, "B") = WorksheetFunction.CountIf(s1.Range("K:K"), s1.Cells(k, "K"))
x = x + 1
End If
Next
End Sub
Sub vardıyasay()
Application.ScreenUpdating = False
Dim s1 As Worksheet: Dim s2 As Worksheet: Dim i As Integer
Set s1 = Sheets("1"): Set s2 = Sheets("2"): Set wf = WorksheetFunction
s2.Range("A2:E" & Rows.Count).Cells.Clear
s1.Select
s1.Range("A1:A" & Rows.Count).Cells.AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=s2.Range("A1"), Unique:=True
son1 = s1.Cells(65335, "A").End(3).Row
son2 = s2.Cells(65335, "A").End(3).Row
s2.Select
s2.Range("A2:A" & son2).Sort Range("A2"), xlAscending
s2.Cells(1, 2) = "SAYISI": s2.Cells(1, 3) = "Sabah": s2.Cells(1, 4) = "Akşam": s2.Cells(1, 5) = "Gece"
For i = 2 To son2
s2.Cells(i, 2) = wf.CountIf(s1.Range("A2:A" & son1), s2.Range("A" & i))
s2.Cells(i, 3) = wf.CountIfs(s1.Range("A2:A" & son1), s2.Range("A" & i), s1.Range("C2:C" & son1), s2.Range("C1"))
s2.Cells(i, 4) = wf.CountIfs(s1.Range("A2:A" & son1), s2.Range("A" & i), s1.Range("C2:C" & son1), s2.Range("D1"))
s2.Cells(i, 5) = wf.CountIfs(s1.Range("A2:A" & son1), s2.Range("A" & i), s1.Range("C2:C" & son1), s2.Range("E1"))
Next i
Application.ScreenUpdating = True
MsgBox "İşlem Tamam.", vbInformation
End Sub
Sub kod()
With Sheets("1")
son = .Cells(Rows.Count, 1).End(xlUp).Row
a = .Range("A2:C" & son).Value
End With
Set d1 = CreateObject("scripting.dictionary")
Set d2 = CreateObject("scripting.dictionary")
Set d3 = CreateObject("scripting.dictionary")
For i = 1 To UBound(a)
d1(a(i, 1)) = ""
d2(a(i, 3)) = ""
krt = a(i, 1) & "|" & a(i, 3)
d3(krt) = d3(krt) + 1
Next i
sat = d1.Count
sut = d2.Count
If sat > 0 Then
ReDim b(1 To sat, 1 To sut + 1)
For i = 1 To sat
For j = 1 To sut
krt = d1.keys()(i - 1) & "|" & d2.keys()(j - 1)
b(i, 1) = b(i, 1) + d3(krt)
b(i, j + 1) = d3(krt)
Next j
Next i
With Sheets("2")
.Cells = ""
.[C1].Resize(, sut) = d2.keys
.[A2].Resize(sat) = Application.Transpose(d1.keys)
.[B2].Resize(sat, sut + 1) = b
.[A1] = "ADI"
.[B1] = "SAYISI"
End With
End If
MsgBox "İşlem Tamam.", vbInformation
End Sub
Rica ederim.Dönüş yaptığınız için teşekkür ederim.sayın @çıtır sayın @Ziynettin çok teşekkür ederim