Merhaba Arkadaşlar. Hazırlamaya çalıştığım bir kod için sürekli uyarı alıyorum. Nerede yanlış yaptığımı anlatacak arkadaşlara minnettar olurum.
Yapmaya çalıştığım kodu anlatayım. Ekders Sayfasında hazırladığım verileri Çizelge sayfasına aktarıyorum. Find ile ad aramaktayım ad var ise güncellesin, ad yok ise yeni satırda yazsın.
Yapmaya çalıştığım kodu anlatayım. Ekders Sayfasında hazırladığım verileri Çizelge sayfasına aktarıyorum. Find ile ad aramaktayım ad var ise güncellesin, ad yok ise yeni satırda yazsın.
Kod:
Sub kaydet()
Set s1 = Worksheets("Puantaj")
Set s2 = Worksheets("Çizelge")
Set s3 = Worksheets("Ekders Hazırla")
Set s4= Worksheets("Anasayfa")
Application.ScreenUpdating = False
Set ad = s4.Range("B:B").Find(s3.Cells(2, 3), LookIn:=xlValues)
a = ad.Row
ay = s4.Cells(4, "e")
Range("B6:C16").ClearContents
s2.Cells(1, 3) = s4.Cells(a, "e")
s2.Cells(3, 3) = s4.Cells(a, "d")
s2.Cells(4, 3) = s4.Cells(a, "g")
s2.Cells(2, 3) = s4.Cells(4, 3)
s2.Cells(2, 4) = s4.Cells(4, 4)
s2.Cells(1, "j") = s4.Cells(a, "f")
s2.Cells(2, "j") = s4.Cells(a, "h") & " / " & s4.Cells(a, "i")
s4.Select
For i = 6 To s3.[D65536].End(xlUp).Row
If Not s3.Cells(i, "d") = "" Then
s3.Cells(i, "e") = Application.WorksheetFunction.VLookup(ekders.Cells(i, "d"), s4.Range("M2:N23"), 2, False)
Else
s3.Cells(i, "e") = ""
End If
Next i
s3.Select
For i = 6 To 16
For j = 6 To 42
s2.Cells(4, j) = s3.Cells(3, j)
s2.Cells(5, j) = s3.Cells(5, j)
s2.Cells(5, 43) = s3.Cells(5, 43)
If WorksheetFunction.CountA(Cells(i, j)) > 0 Then
Cells(i, 2) = s4.Cells(a, 2)
Cells(i, 3) = s4.Cells(a, 3)
Cells(i, "aq") = Cells(3, 3) & "-" & Cells(4, 5) & "-" & ay & "-" & Cells(i, "e")
Cells(i, "ar") = s4.Cells(a, "e")
Cells(i, "as") = Cells(4, "e") & " - " & Cells(3, "e")
End If
Next j
Next i
s2.Cells(1, "aq") = 1
s2.Cells(2, "aq") = 2
s2.Cells(3, "aq") = 3
s2.Cells(4, "aq") = 4
s2.Cells(5, "aq") = "T.C.KimlikNo-Yıl-Ay-Kod"
s2.Cells(5, "ar") = "Kurumu"
s2.Cells(5, "as") = "Ödeme Ay - Yıl"
For i = 6 To s3.[AQ65536].End(xlUp).Row
If WorksheetFunction.CountIf(s2.[AQ:AQ], s3.Cells(i, "aq")) = 0 Then
satır = s2.Cells(1, "aq").End(xlDown).Row + 1
'If WorksheetFunction.CountIf(s2.Range("aq6:aq65536"), s3.Cells(i, "aq")) = 1 Then
Else
satır = s2.[AQ:AQ].Find(what:=s3.Range("AQ" & i)).Row 'Cells(i, "aq")).Row
End If
For Z = 2 To 45
s2.Cells(satır, Z) = s3.Cells(i, Z)
Next Z
Next i
End Sub
