• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

koda göre tarih ve tutar değişimi

KuTuKa

Altın Üye
Katılım
10 Mart 2005
Mesajlar
750
Excel Vers. ve Dili
Microsoft Office LTSC Pr. Pl 2021 - 64 bit Türkçe
Merhabalar Excel dosyasında ayrıntılı olarak anlatmaya çalıştım.
verilen koda göre göre tutar ve tarihlerin değişmesini istiyorum teşekkürler.
 

Ekli dosyalar

Merhaba
1. Sorunuzu formül kısmına sormuşsunuz. Ama bu soruyu formülle çözdüğümüzde ay değiştiğinde bu kayıtta değişecektir. Formül otomatik hesap yaptığı için mantıksız olacaktır.
2. Siz F2 hücresinde işlem yaptıktan sonra F3 hücresine giriş yapmayacak mısınız_?
3. G3 ve J2 hücrelerine girmiş olduğunuz rakamı nereden buldunuz_? Bunları siz elle mi gireceksiniz_?
 
1-ben formülle olabilir diye düşünmüştüm makro da olabilir

2- f2 hücresine girdiğimde f3 e giriş yapmayayım sadece sonay olursa işlem tek satır olacak 2300 kod verdiğinde 31.12.2012 son olduğundan
tek satır diğer aylarda hep çift satırda olacaktır.

3- j sütununa verdiğim değerler sağlık sihortası tutarlarıdır.Kendim vereceğim o kısma gelince manuel
g3 hücreside hesaplarken sabit diğer aylara yansıtılması geeken tutar 135,83 dür yani ben 2300 dediğimde 135,83 tl lik tutar olduğunu bilecek g3 hücresinde
diğer kodlar içinde durum aynıdır.
 
g3 hücreside hesaplarken sabit diğer aylara yansıtılması geeken tutar 135,83 dür yani ben 2300 dediğimde 135,83 tl lik tutar olduğunu bilecek g3 hücresinde
diğer kodlar içinde durum aynıdır.

Nereden bilecek bunu_? Bir yerde kaydı var mı_? Yada hesaplama şekli
 
2300 kod için diğer aylardaki sabit tutar : 135,83 tl
2310 kod için diğer aylardaki sabit tutar : 6,25 tl
2300t kod için diğer aylardaki sabit tutar : 34 tl

benim elime 2300 koda göre belge geldiğinde örneğin 1000 tl temmuz ayında geldi ben j sütununa 1000 tl yi yazacağım F2 sütununa 2300 dediğimde
ilk satır a 01.07.2012 - 31.07.2012 olacak alt satır bir sonraki aydan başlayacak
01.08.2012 - 31.12.2012 de bitecek iki tarih arasında 5 ay olduğundan sabit olan tutar G3 hücresine gelecek 135,83 g2 hücresiiçinde 135,83 * 5 ay = 679,15 bunu j sütünundaki 1000 den çıkartığında g2 hücresine 320,85 tl yazacak
teşekkürler
 
2300t için son tarihi nereden buldunuz_?
Bu tarihi nasıl bulabilirim ben yada excel nasıl bulacak.
 
2300t için son tarihi nereden buldunuz_?
Bu tarihi nasıl bulabilirim ben yada excel nasıl bulacak.

2300 girdiğimde son tarih 311.12.2012 olmalı bu değişmeyecek hangi ayda girersem gireyim son tarih 31.12.2012 olacak

seneye 2013 de
ocak da girdiğimde son tarih 31.12.2013 olacak
koda göre en son tarihin 31.12 olması gerekiyor çünkü belgenin son tarihi o
 
2300 girdiğimde son tarih 311.12.2012 olmalı bu değişmeyecek hangi ayda girersem gireyim son tarih 31.12.2012 olacak

seneye 2013 de
ocak da girdiğimde son tarih 31.12.2013 olacak
koda göre en son tarihin 31.12 olması gerekiyor çünkü belgenin son tarihi o

Ben 2300 ü yaptım o tamamlandı.
2300t nin tarihinden bahsediyorum.
Bu da 2300 gibi yılın son gününü vermiyor verilerde 2013'ün 3 ayını gösteriyor bunu nereden buldun onu soruyorum.
 
ben yanlış anlamışım pardon
2300 yazdığında son tarih 31.12.2012
2300t yazığında son tarih 31.03.2013
2310 yazdığında son tarih 30.06.2013

gelen poliçelerin son işlenme tarihleri bunlar o yüzden kodlar yazıldığında son tarihler yukarıdaki gibi oluyor
 
ben yanlış anlamışım pardon
2300 yazdığında son tarih 31.12.2012
2300t yazığında son tarih 31.03.2013
2310 yazdığında son tarih 30.06.2013

gelen poliçelerin son işlenme tarihleri bunlar o yüzden kodlar yazıldığında son tarihler yukarıdaki gibi oluyor

Bu tarihleri nereden bulacak.
Mesela
2013'ün 1 , 2 , 3 Aylarında işlem yaptığımızda tarih ne olacak.
2013'ün 4. Ayında işlem yaptığımızda tarih ne olacak.
 
bu tarihleri gelen poliçeden anlıyoruz.

Eğer poliçe 2300tise
2300t için
Mart 2013 e kadar gelen her poliçe 31.03.2013 son tarih olacak de dolacak nisan ayından itibaren gelen yeni poliçeler 31.03.2014 kadar uzayacaktır.yani tarih 01.04.2013-30.04.2013
05.2013-31.03.2014 olacaktır.

Eğer poliçe 2310 ise
2310 için
Haziran 2013 e kadar gelen her poliçe 30.06.2013 son tarih olacak
Temmuz ayından itibaren gelenler
01.07.2013-30.07.2013
01.08.2013-30.06.2014 olacak

Eğer poliçe 2300 ise
2300 için
Ocak 2013 de bodro geldiğinde son ay 31.12.2013 olacak

İşlenmesi
01.01.2013-31.01.2013
01.02.2013-31.12.2013 olacak


Her üç kod için gelen poliçeler 1 yıllık gelmektedir.
Ama işe girişe göre son tarih baz alınmaktadır. Bir kişi nin poliçesi mart 2013 de geldiyse 2300 koda göre 31.12.2013 de bitmesi gerekiyor.
 
Merhaba
Sayfanın kod bölümüne ekleyip dener misiniz_?
Kod:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Intersect(Target, Range("F:F")) Is Nothing Then _
Application.EnableEvents = True: Exit Sub
Dim KL As Long
If Target = 2300 Then
Cells(Target.Row, "D") = DateSerial(Year(Date), Month(Date), 1)
Cells(Target.Row, "E") = DateSerial(Year(Date), Month(Date) + 1, 0)
Cells(Target.Row + 1, "D") = DateSerial(Year(Date), Month(Date) + 1, 1)
Cells(Target.Row + 1, "E") = DateSerial(Year(Date), 12, 31)
Cells(Target.Row + 1, "F") = Target
Cells(Target.Row + 1, "G") = "135,83" + 0
KL = Month(Cells(Target.Row + 1, "E") - Cells(Target.Row + 1, "D"))
Cells(Target.Row, "G") = Cells(Target.Row, "J") - Cells(Target.Row + 1, "G") * KL
ElseIf Target = "2300T" Then
Cells(Target.Row, "D") = DateSerial(Year(Date), Month(Date), 1)
Cells(Target.Row, "E") = DateSerial(Year(Date), Month(Date) + 1, 0)
KL = Month(Date)
If KL > 3 Then
Cells(Target.Row + 1, "D") = DateSerial(Year(Date), Month(Date) + 1, 1)
Cells(Target.Row + 1, "E") = DateSerial(Year(Date) + 1, 3, 31)
Else
Cells(Target.Row + 1, "D") = DateSerial(Year(Date), Month(Date) + 1, 1)
Cells(Target.Row + 1, "E") = DateSerial(Year(Date), 3, 31)
End If
Cells(Target.Row + 1, "F") = Target
Cells(Target.Row + 1, "G") = "34" + 0
KL = Month(Cells(Target.Row + 1, "E") - Cells(Target.Row + 1, "D"))
Cells(Target.Row, "G") = Cells(Target.Row, "J") - Cells(Target.Row + 1, "G") * KL
ElseIf Target = "2310" Then
Cells(Target.Row, "D") = DateSerial(Year(Date), Month(Date), 1)
Cells(Target.Row, "E") = DateSerial(Year(Date), Month(Date) + 1, 0)
KL = Month(Date)
If KL > 6 Then
Cells(Target.Row + 1, "D") = DateSerial(Year(Date), Month(Date) + 1, 1)
Cells(Target.Row + 1, "E") = DateSerial(Year(Date) + 1, 6, 30)
Else
Cells(Target.Row + 1, "D") = DateSerial(Year(Date), Month(Date) + 1, 1)
Cells(Target.Row + 1, "E") = DateSerial(Year(Date), 6, 30)
End If
Cells(Target.Row + 1, "F") = Target
Cells(Target.Row + 1, "G") = "6,25" + 0
KL = Month(Cells(Target.Row + 1, "E") - Cells(Target.Row + 1, "D")) + 1
Cells(Target.Row, "G") = Cells(Target.Row, "J") - Cells(Target.Row + 1, "G") * KL
End If
Application.EnableEvents = True
End Sub
 
diyelim ki poliçe şubatta geldi ve tutarı 1450 tl
ben excel 2300 girersem

01.02.2013-29.02.2013 girilip dğer ay 01.03.2013 - 31.12.2013 olacak
mart da geldiyse 01.03.2013 - 31.03.2013 olacak sonraki dönem 01.04.2013 - 31.12.2013 olmalı
burada önemli olan son tarihin olduğu satır,burada excel kaç ay olduğunu saymalı nisan la aralık ayı arası 9 ay var demeli 135,83 * 9 hesaplayacak. bir üsteki satıra 1400-(135,83*9) tutarı girecek alt satır 135,83 olacak.
 
asi kral ilgi için çok teşekkür ederim ama

ben makroyu çalıştıramadım.
 
diyelim ki poliçe şubatta geldi ve tutarı 1450 tl
ben excel 2300 girersem

01.02.2013-29.02.2013 girilip dğer ay 01.03.2013 - 31.12.2013 olacak
mart da geldiyse 01.03.2013 - 31.03.2013 olacak sonraki dönem 01.04.2013 - 31.12.2013 olmalı
burada önemli olan son tarihin olduğu satır,burada excel kaç ay olduğunu saymalı nisan la aralık ayı arası 9 ay var demeli 135,83 * 9 hesaplayacak. bir üsteki satıra 1400-(135,83*9) tutarı girecek alt satır 135,83 olacak.

Merhaba
Sonuç bende doğru çıkıyor.
Mart ayına giriş yaptığımda. Siz nasıl hatalı sonuç alıyorsunuz anlamadım.
Eki inceleyin. Dosya üzerinde sağlama yapıldı sonuç doğru çıkıyor.
Makro F sütununda işlem yaptığınızda çalışır.
 

Ekli dosyalar

sizin dosyanızda deneyince çalışıyor saırım ben makroyu tam yerine yerleştiremimişim.

2310 kodu için
toplama da eksiklik oluyor 6,25 lik kısım eksik ben bunun için bir deneme yaptım

2310 için yazdığınız komutta
KL = Month(Cells(Target.Row + 1, "E") - Cells(Target.Row + 1, "D")) + 1

olan kısmında sondaki + 1 kaldırınca düzeldi



2300 kodu için şöyle birşey olabilir mi
ocak 2013 de yeni tarih aralığını verebilir mi?

bir de
Hsütununa bir tanımlama daha yaptım
sıra no yu veriyordu

bu yazdığınız makronun altına yine sizin öncesinde yazmış olduğunuz makroyu yapıştırdığımda uyarı veriyor
çalışır hale nasıl gelebilir?

Private Sub Worksheet_Change(ByVal Target As Range)
'Konu : Yazılan Personele göre Sıra No
'Mail :
'Msn :
'Skype : m.batu.1967
'Coder By : asi_kral_1967
If Intersect(Target, Range("E:E")) Is Nothing Then Exit Sub
If Cells(Target.Row - 1, "B") = Cells(Target.Row, "B") Then Exit Sub
Cells(Target.Row, "H") = ""
Cells(Target.Row, "H") = WorksheetFunction.Max(Range("H1:H" & Target.Row)) + 1
End Sub


mail kısmında yazan mailleri sildim.
teşekkürler
kutuka
 
Son düzenleme:
Merhaba
Diğer kodu bunun altına ekleriz o problem değil.
Önce bu konuyu halledelim.
2300 kodu için şöyle birşey olabilir mi
ocak 2013 de yeni tarih aralığını verebilir mi?
Bunu biraz daha anlatır mısınn_?
Tam olarak ne olacak Ay olarak Ocak'ı gördüğünde nasıl bir işlem yapacak_?
 
Tabikide
gelen poliçeler bir senelik 2300 koda girdiğimiz 31.12.2012 de bitiyor.
01.01.2013 2300 koda gireceğimiz yeni poliçeler gelecek onların da son tarihi 31.12.2013 olacak.
yeni yılda 2013 te
2300 yazdığında son tarih 31.12.2013
01.04.213 ten itibaren
2300t yazığında son tarih 31.03.2014
01.07.2013 ten itibaren
2310 yazdığında son tarih 30.06.2014
olacak.
işleniş mantığı yine aynı
şimdiden teşekkürler
 
Tabikide
gelen poliçeler bir senelik 2300 koda girdiğimiz 31.12.2012 de bitiyor.
01.01.2013 2300 koda gireceğimiz yeni poliçeler gelecek onların da son tarihi 31.12.2013 olacak.
yeni yılda 2013 te
2300 yazdığında son tarih 31.12.2013
01.04.213 ten itibaren
2300t yazığında son tarih 31.03.2014
01.07.2013 ten itibaren
2310 yazdığında son tarih 30.06.2014
olacak.
işleniş mantığı yine aynı
şimdiden teşekkürler

Kodu siz bu söylediklerinize göre denediniz mi_?
İsterseniz önce bir deneyin. Bu şekilde çalışması gerekli
 
Geri
Üst