Userform frmIzinKullanim olan sayfada personelin sicil numarası veya btnAra açılan listeden personeli bulup yıllık izin yaza biliyorum.
Sorun yaşadığım kısım txtHakEdilenYI + txtDevredenYI - txtGunSayisi ile çıkan sonucu txtKalanYI aktarmamda yaşıyorum.
Yazmış olduğum kod aşağıda bulunmaktadır.
Kısacası Personel_Bilgileri sayfasında AC girilen yıllık izin gün adetinin güncellenmesi.
per.Cells(kac, 29) = per.Cells(kac, 27) + per.Cells(kac, 35) - per.Cells(kac, 28) yaptığımda kullanılan yıllık izin toplamını düşüyor. ben personele 2 gün giriyorsam personel 6 gün önceden kullanmış ise o 6 günü düşüyor.
Sorun yaşadığım kısım txtHakEdilenYI + txtDevredenYI - txtGunSayisi ile çıkan sonucu txtKalanYI aktarmamda yaşıyorum.
Yazmış olduğum kod aşağıda bulunmaktadır.
Kısacası Personel_Bilgileri sayfasında AC girilen yıllık izin gün adetinin güncellenmesi.
per.Cells(kac, 29) = per.Cells(kac, 27) + per.Cells(kac, 35) - per.Cells(kac, 28) yaptığımda kullanılan yıllık izin toplamını düşüyor. ben personele 2 gün giriyorsam personel 6 gün önceden kullanmış ise o 6 günü düşüyor.
Kod:
Private Sub btnKaydet_Click()
Dim sonsat As Integer
Dim sonsatpers As Integer
Dim i As Integer
If txtID = "" Then MsgBox "Lütfen kayıtlı personellerden birisini seçiniz.", vbInformation, "Uyarı": Exit Sub
If txtBaslangicTarihi = "" Or txtBitisTarihi = "" Or cbIzinTuru = "" Then MsgBox "Lütfen izin tarihlerini ve izin türünü doğru bir şekilde giriniz.", vbInformation, "Uyarı": Exit Sub
sat = ListBox1.ListIndex + 2
sonsat = izndk.Range("A10000").End(xlUp).Row + 1
If sat < 2 Then MsgBox "Lütfen kayıtlı personellerden birisini seçiniz.", vbInformation, "Uyarı": Exit Sub
If sat < sonsat Then sonsat = sat
dur = 1
With izndk
.Range("A" & sonsat) = txtHareketID
.Range("B" & sonsat) = txtID
.Range("C" & sonsat) = txtSicilNo
.Range("D" & sonsat) = txtPersonelAd
.Range("E" & sonsat) = txtPersonelSoyad
.Range("F" & sonsat) = cbPozisyon
.Range("G" & sonsat) = txtbBirimi
.Range("H" & sonsat) = cbstat
.Range("I" & sonsat) = txtMudurluk
.Range("J" & sonsat) = cbhafta
.Range("K" & sonsat) = txtGunSayisi.Value
.Range("L" & sonsat) = CDate(txtBaslangicTarihi)
.Range("M" & sonsat) = CDate(txtBitisTarihi)
.Range("N" & sonsat) = txtCikissaat
.Range("O" & sonsat) = txtBitissaat
.Range("P" & sonsat) = txtsaat.Value
.Range("R" & sonsat) = cbIzinTuru
.Range("S" & sonsat) = txtAdres
.Range("T" & sonsat) = txtIzinGeregi
.Range("U" & sonsat) = cbvardiya
.Range("V" & sonsat) = Now
.Range("W" & sonsat) = Environ("USERNAME")
End With
If sonsat = ListBox1.ListCount + 1 Then
tnm.Range("K2") = tnm.Range("K2") + 1
End If
kac = WorksheetFunction.Match(txtID, per.Range("A:A"), 0)
Columns(26).NumberFormat = "@"
per.Cells(kac, 26) = WorksheetFunction.Text(WorksheetFunction.SumIfs(izndk.Range("P:P"), izndk.Range("B:B"), txtID, izndk.Range("R:R"), tnm.Range("J6")), "[hh]:mm")
per.Cells(kac, 28) = WorksheetFunction.SumIfs(izndk.Range("K:K"), izndk.Range("B:B"), txtID, izndk.Range("R:R"), tnm.Range("J2"))
per.Cells(kac, 29) = per.Cells(kac, 27) + per.Cells(kac, 35) - CDbl(txtGunSayisi.Value)
per.Cells(kac, 30) = WorksheetFunction.SumIfs(izndk.Range("K:K"), izndk.Range("B:B"), txtID, izndk.Range("R:R"), tnm.Range("J4"))
per.Cells(kac, 31) = WorksheetFunction.SumIfs(izndk.Range("K:K"), izndk.Range("B:B"), txtID, izndk.Range("R:R"), tnm.Range("J3"))
per.Cells(kac, 32) = per.Cells(kac, 28) + per.Cells(kac, 30) + per.Cells(kac, 31)
per.Cells(kac, 33) = WorksheetFunction.SumIfs(izndk.Range("K:K"), izndk.Range("B:B"), txtID, izndk.Range("R:R"), tnm.Range("J7"))
per.Cells(kac, 34) = WorksheetFunction.SumIfs(izndk.Range("K:K"), izndk.Range("B:B"), txtID, izndk.Range("R:R"), tnm.Range("J5"))
If eskitxtid <> Empty And eskitxtid <> txtID And kac2 <> Empty Then
per.Cells(kac2, 26) = WorksheetFunction.Text(WorksheetFunction.SumIfs(izndk.Range("P:P"), izndk.Range("B:B"), eskitxtid, izndk.Range("R:R"), tnm.Range("J6")), "[hh]:mm")
per.Cells(kac2, 28) = WorksheetFunction.SumIfs(izndk.Range("K:K"), izndk.Range("B:B"), eskitxtid, izndk.Range("R:R"), tnm.Range("J2"))
per.Cells(kac2, 29) = per.Cells(kac, 27) + per.Cells(kac, 35) - CDbl(txtGunSayisi.Value)
per.Cells(kac2, 30) = WorksheetFunction.SumIfs(izndk.Range("K:K"), izndk.Range("B:B"), eskitxtid, izndk.Range("R:R"), tnm.Range("J4"))
per.Cells(kac2, 31) = WorksheetFunction.SumIfs(izndk.Range("K:K"), izndk.Range("B:B"), eskitxtid, izndk.Range("R:R"), tnm.Range("J3"))
per.Cells(kac2, 32) = per.Cells(kac2, 28) + per.Cells(kac2, 30) + per.Cells(kac2, 31)
per.Cells(kac2, 33) = WorksheetFunction.SumIfs(izndk.Range("K:K"), izndk.Range("B:B"), eskitxtid, izndk.Range("R:R"), tnm.Range("J7"))
per.Cells(kac2, 34) = WorksheetFunction.SumIfs(izndk.Range("K:K"), izndk.Range("B:B"), eskitxtid, izndk.Range("R:R"), tnm.Range("J5"))
End If
ss = izndk.Cells(Rows.Count, 4).End(xlUp).Row + 1
If ss < 2 Then ss = 2
ListBox1.RowSource = izndk.Name & "!A2:W" & ss
dur = Empty
ListBox1.ListIndex = ListBox1.ListCount - 1
ListBox1.ListIndex = sonsat - 2
ThisWorkbook.Save
MsgBox "Kayıt Başarılı", vbInformation, "Bilgi"
End Sub