Arkadaşlar merhaba,
Makro oluşturdum fakat koşullu çekme konusunda istediğimi başaramadım.
Sayfa 1 de veriler mevcut. Verileri B kolonundaki isimlere göre sayfalara ayırıyor. Burada tek koşul J kolonu 1 var ise almamalı ve sayfa da oluşturmamalı.
Yani Ahmet'in J kolonunda 1 var ise es geç. Fakat şöyle bir ayrıntı var;
Ahmet'in J kolonunda hem 1 hem 2 hem 3 olabilir. Eğer böyleyse sadece 2 ve 3 leri almalı.
Ahmet'in J kolonunda sadece 1 var ise o zaman hiçbirşey oluşturmamalı.
Tek koşul bu
Makro oluşturdum fakat koşullu çekme konusunda istediğimi başaramadım.
Sayfa 1 de veriler mevcut. Verileri B kolonundaki isimlere göre sayfalara ayırıyor. Burada tek koşul J kolonu 1 var ise almamalı ve sayfa da oluşturmamalı.
Yani Ahmet'in J kolonunda 1 var ise es geç. Fakat şöyle bir ayrıntı var;
Ahmet'in J kolonunda hem 1 hem 2 hem 3 olabilir. Eğer böyleyse sadece 2 ve 3 leri almalı.
Ahmet'in J kolonunda sadece 1 var ise o zaman hiçbirşey oluşturmamalı.
Tek koşul bu
Kod:
Function SayfaVarMi(Sayfa As String) As Boolean
On Error Resume Next
SayfaVarMi = CBool(Len(Worksheets(Sayfa).Name) > 0)
End Function
Sub Sayfalara_Böl()
Application.ScreenUpdating = False
Dim S1 As Worksheet
Set S1 = Sheets("Data")
Dim Sayfa As String
For a = 2 To S1.Cells(Rows.Count, "B").End(3).Row
Sayfa = S1.Cells(a, "B")
If Not SayfaVarMi(Sayfa) Then
Sheets.Add
ActiveSheet.Name = Sayfa
Sheets(Sayfa).Move After:=Sheets(Sheets.Count)
S1.Range("B1:V1").Copy Range("A1")
End If
sonsatır = Sheets(Sayfa).Cells(Rows.Count, "A").End(3).Row + 1
S1.Range(S1.Cells(a, "B"), S1.Cells(a, "V")).Copy _
Sheets(Sayfa).Cells(sonsatır, "A")
Next a
Application.ScreenUpdating = True
MsgBox " B i t t i "
End Sub
