Değerli Arkadaşlar,
Kullandığım dağıt makrosu örnekte olduğu gibi liste sayfasındaki verileri hesap isimlerine göre sayfalara dağıtıyor eğer sayfa yoksa yeni sayfa açıyor, eğer sayfa varsa sayfayı silip üstüne tekrar yazıyor. Ben daha önce aynı adla açılmış olan sayfa biçimini (üzerine ilaveler yaptığıım için) silmeden gelen veriyi bir alt satıra yazdırmak istiyorum. Yeni sayfa açılmasında problemim yok.
Yardımlarınız için teşekkür ederim.
Saygı ve sevgilerimle,
Ayhan
Sub DAGIT()
Dim s1 As Worksheet
Dim sY As Worksheet
Dim ALAN As Range
Dim r As Integer
Dim c As Range
Set s1 = Sheets("liste")
Set ALAN = Range("VERİTABANI")
s1.Columns("b:b").Copy _
Destination:=s1.Range("L1")
s1.Columns("L:L").AdvancedFilter _
Action:=xlFilterCopy, _
CopyToRange:=Range("J1"), Unique:=True
r = Cells(Rows.Count, "J").End(xlUp).Row
Range("L1").Value = Range("b1").Value
For Each c In Range("J2:J" & r)
s1.Range("L2").Value = c.Value
If Sheet(c.Value) Then
Sheets(c.Value).Cells.Clear
ALAN.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Sheets("liste").Range("L1:L2"), _
CopyToRange:=Sheets(c.Value).Range("A1"), _
Unique:=False
Else
Set sY = Sheets.Add
sY.Move After:=Worksheets(Worksheets.Count)
sY.Name = c.Value
ALAN.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Sheets("liste").Range("L1:L2"), _
CopyToRange:=sY.Range("A1"), _
Unique:=False
End If
Next
s1.Select
s1.Columns("J:L").Delete
End Sub
Function Sheet(Sheetname As String) As Boolean
On Error Resume Next
Sheet = CBool(Len(Worksheets(Sheetname).Name) > 0)
End Function
Kullandığım dağıt makrosu örnekte olduğu gibi liste sayfasındaki verileri hesap isimlerine göre sayfalara dağıtıyor eğer sayfa yoksa yeni sayfa açıyor, eğer sayfa varsa sayfayı silip üstüne tekrar yazıyor. Ben daha önce aynı adla açılmış olan sayfa biçimini (üzerine ilaveler yaptığıım için) silmeden gelen veriyi bir alt satıra yazdırmak istiyorum. Yeni sayfa açılmasında problemim yok.
Yardımlarınız için teşekkür ederim.
Saygı ve sevgilerimle,
Ayhan
Sub DAGIT()
Dim s1 As Worksheet
Dim sY As Worksheet
Dim ALAN As Range
Dim r As Integer
Dim c As Range
Set s1 = Sheets("liste")
Set ALAN = Range("VERİTABANI")
s1.Columns("b:b").Copy _
Destination:=s1.Range("L1")
s1.Columns("L:L").AdvancedFilter _
Action:=xlFilterCopy, _
CopyToRange:=Range("J1"), Unique:=True
r = Cells(Rows.Count, "J").End(xlUp).Row
Range("L1").Value = Range("b1").Value
For Each c In Range("J2:J" & r)
s1.Range("L2").Value = c.Value
If Sheet(c.Value) Then
Sheets(c.Value).Cells.Clear
ALAN.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Sheets("liste").Range("L1:L2"), _
CopyToRange:=Sheets(c.Value).Range("A1"), _
Unique:=False
Else
Set sY = Sheets.Add
sY.Move After:=Worksheets(Worksheets.Count)
sY.Name = c.Value
ALAN.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Sheets("liste").Range("L1:L2"), _
CopyToRange:=sY.Range("A1"), _
Unique:=False
End If
Next
s1.Select
s1.Columns("J:L").Delete
End Sub
Function Sheet(Sheetname As String) As Boolean
On Error Resume Next
Sheet = CBool(Len(Worksheets(Sheetname).Name) > 0)
End Function