• DİKKAT

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

Tarihi ileri attırma

Katılım
1 Temmuz 2012
Mesajlar
101
Excel Vers. ve Dili
.Office 2007
Arkadaşlar kısaca şöyle anlatayım.

Eğer C hücresinde "A" yazıyorsa, A hücresindeki 01.01.2012 tarihini bir dahaki ayın 8'ine,

"B" yazıyorsa, bir dahaki ayın son gününe,

"C" yazıyorsa, bu ayın 20'sine atsın.

Hepsinin aynı formülde olması lazım ve dikkat edilmesi gereken konu, renklendirildi.

Ben ayrı ayrı kodları yazdım fakat birleştiremiyorum, hata veriyor.

=EĞER(K11="AAAAAA";(TARİH(YIL(C11);AY(C11)+1;GÜN(8))))

=EĞER(K12="BBBBB";(TARİH(YIL(C12);AY(C12)+1;GÜN(31))))

=EĞER(K13="CCCCC";(TARİH(YIL(C13);AY(C13)+1;GÜN(20))))
 
Arkadaşlar kısaca şöyle anlatayım.

Eğer C hücresinde "A" yazıyorsa, A hücresindeki 01.01.2012 tarihini bir dahaki ayın 8'ine,

"B" yazıyorsa, bir dahaki ayın son gününe,

"C" yazıyorsa, bu ayın 20'sine atsın.

Hepsinin aynı formülde olması lazım ve dikkat edilmesi gereken konu, renklendirildi.

Ben ayrı ayrı kodları yazdım fakat birleştiremiyorum, hata veriyor.

=EĞER(K11="AAAAAA";(TARİH(YIL(C11);AY(C11)+1;GÜN(8))))

=EĞER(K12="BBBBB";(TARİH(YIL(C12);AY(C12)+1;GÜN(31))))

=EĞER(K13="CCCCC";(TARİH(YIL(C13);AY(C13)+1;GÜN(20))))

Merhaba
Kod:
=EĞER($C1="A";TARİH(YIL($A1);AY($A1);8);EĞER($C1="B";TARİH(YIL($A1);AY($A1)+1;0);EĞER($C1="C";TARİH(YIL($A1);AY($A1);20);"")))
Bu formülü dener misiniz_?
 
Merhabalar,
Cemil bey ve asi_kral çok teşekkürler

EĞER($I13="AXESS 2345";TARİH(YIL($C13);AY($C13)+1;8);EĞER($I13="BONUS 5555";TARİH(YIL($C13);AY($C13)+1;0);EĞER($I13="TWORLD 9999";TARİH(YIL($C13);AY($C13);26);EĞER($I13="WORLD 1122";TARİH(YIL($C13);AY($C13)+1;5);""))))

Yukarıdaki formülü D4 ile D10000 sütununa vba kod olarak tanımlayabilirmiyiz.

Tarih: C4.....C10000
Vade: D4....D10000
Kart ismi: I4....I10000
Tutar: J4....J10000 sütunlarında bulunmaktadır.

İlginiz için teşekkürler
Yb®
 

Ekli dosyalar

Merhabalar,
Cemil bey ve asi_kral çok teşekkürler

EĞER($I13="AXESS 2345";TARİH(YIL($C13);AY($C13)+1;8);EĞER($I13="BONUS 5555";TARİH(YIL($C13);AY($C13)+1;0);EĞER($I13="TWORLD 9999";TARİH(YIL($C13);AY($C13);26);EĞER($I13="WORLD 1122";TARİH(YIL($C13);AY($C13)+1;5);""))))

Yukarıdaki formülü D4 ile D10000 sütununa vba kod olarak tanımlayabilirmiyiz.

Tarih: C4.....C10000
Vade: D4....D10000
Kart ismi: I4....I10000
Tutar: J4....J10000 sütunlarında bulunmaktadır.

İlginiz için teşekkürler
Yb®

Merhaba
Boş bir module kopyalayın ve deneyin.
Kod:
Option Explicit
Sub son_ödeme_tarihi_1967()
'Konu       :   Son Ödeme Listesine Göre Tarih Belirleme
'Mail       :   m.batu.1967@gmail.com
'Msn        :   m.batu.1967@hotmail.com.tr
'Skype      :   m.batu.1967
'Coder By   :   asi_kral_1967
Dim SAT As Long
Application.ScreenUpdating = False
With WorksheetFunction
For SAT = 4 To Cells(Rows.Count, "C").End(xlUp).Row
If Cells(SAT, "C") <> Empty Then
If .CountIf(Range("O4:O" & Rows.Count), Cells(SAT, "O")) < 1 Then
Cells(SAT, "D") = DateSerial(Year(Cells(SAT, "C")), Month(Cells(SAT, "C")) + 1, _
.VLookup(Cells(SAT, "I"), Range("O4:Q" & Rows.Count), 3, 0))
End If: End If: Next: End With
Application.ScreenUpdating = True
MsgBox "İşlem Tamamlandı" & vbLf & Application.UserName, _
vbInformation, "asi_kral_1967"
End Sub
Dosyanız Ekte.
 

Ekli dosyalar

Sayın asi_kral

Şimdi fark ettim aslında formülde hata varmış. Formül tarihleri hep ayın 1.gününe göre algılıyor. Oysa hesap kesim tarihinden önceki ve sonraki tarihleri hesaplama şekli farklı olmalı,
Bonus 5555 için;
Hesap kesim tarihi 21. gün olduğu için
20.05.2012>> vd. 30.06.2012
25.05.2012>> vd. 31.07.2012 olmalı

oysa her iki işlem tarihinde de 01.07.2012 geliyor. Ha eğer ay sonunu artık aylar için 31 olarak algılamıyorsa her ayın 30. günü yapabiliriz. O çok önemli değil.
- Yani vade hesaplamada hesap kesim tarihi dikkate alınması gerekiyor.
Buna göre hazırlayabilirmisiniz.
Teşekkürler...
Yb®
 
Sayın asi_kral

Şimdi fark ettim aslında formülde hata varmış. Formül tarihleri hep ayın 1.gününe göre algılıyor. Oysa hesap kesim tarihinden önceki ve sonraki tarihleri hesaplama şekli farklı olmalı,
Bonus 5555 için;
Hesap kesim tarihi 21. gün olduğu için
20.05.2012>> vd. 30.06.2012
25.05.2012>> vd. 31.07.2012 olmalı

oysa her iki işlem tarihinde de 01.07.2012 geliyor. Ha eğer ay sonunu artık aylar için 31 olarak algılamıyorsa her ayın 30. günü yapabiliriz. O çok önemli değil.
- Yani vade hesaplamada hesap kesim tarihi dikkate alınması gerekiyor.
Buna göre hazırlayabilirmisiniz.
Teşekkürler...
Yb®

Yani istediğiniz hesap kesim tarihinden itibaren 10 gün eklemek doğru mu anladım acaba_?
Kırmızı yeri nasıl hesapladınız hesap kesimi ile aynı bu tarih gece 00:00'da kesilirse bugün harcanan Ekstra'ya eklenir
 
Son düzenleme:
Merhabalar,
Evet hesap kesim tarihi ile son ödeme tarihi arası 10 gün,
H.K.T. 21 olan için 21 i üzerine 10 gün,
işlem tarihi 22 olduğunda ise bir sonraki ayın 31 ödeme tarihi olacaktır.

Yani her kart için ayrı ayrı ödeme planı yazılmalı hesap kesim tarihinden küçük ise H.K.T+10 gün hesap kesim tarihinden büyük ise S.Ö.T+1 AY-İşlem Günü gibi olacak sanırım

Yardımınızı bekliyorum teşekkürler...
Yb®
 
Merhabalar,
Evet hesap kesim tarihi ile son ödeme tarihi arası 10 gün,
H.K.T. 21 olan için 21 i üzerine 10 gün,
işlem tarihi 22 olduğunda ise bir sonraki ayın 31 ödeme tarihi olacaktır.

Yani her kart için ayrı ayrı ödeme planı yazılmalı hesap kesim tarihinden küçük ise H.K.T+10 gün hesap kesim tarihinden büyük ise S.Ö.T+1 AY-İşlem Günü gibi olacak sanırım

Yardımınızı bekliyorum teşekkürler...
Yb®

Bunu keşke en baştan söyleseydiniz şimdi bir daha baştan uğraşacağız. İnşallah başarırız_?
 
kusura bakmayın aslında benim dosyam bu değildi. Sağolsun cemil bey yardım etti ve konuyu da bu şekilde aktardı. Buradan devam etmeye başladık.
 
kusura bakmayın aslında benim dosyam bu değildi. Sağolsun cemil bey yardım etti ve konuyu da bu şekilde aktardı. Buradan devam etmeye başladık.

Module'deki kodu bununla değiştirip dener misiniz_?
Kod:
Option Explicit
Sub son_ödeme_tarihi_1967()
'Konu       :   Son Ödeme Listesine Göre Tarih Belirleme
'Mail       :   m.batu.1967@gmail.com
'Msn        :   m.batu.1967@hotmail.com.tr
'Skype      :   m.batu.1967
'Coder By   :   asi_kral_1967
Dim SAT As Long
Application.ScreenUpdating = False
With WorksheetFunction
For SAT = 4 To Cells(Rows.Count, "C").End(xlUp).Row
If Cells(SAT, "C") <> Empty And .CountIf(Range("O4:O" & Rows.Count), Cells(SAT, "I")) > 0 Then
If DateSerial(Year(Cells(SAT, "C")), Month(Cells(SAT, "C")), .VLookup(Cells(SAT, "I"), _
Range("O4:Q" & Rows.Count), 2, 0)) < Cells(SAT, "C") Then
Cells(SAT, "D") = DateSerial(Year(Cells(SAT, "C")), Month(Cells(SAT, "C")) + 1, _
.VLookup(Cells(SAT, "I"), Range("O4:Q" & Rows.Count), 2, 0) + 10)
Else
Cells(SAT, "D") = DateSerial(Year(Cells(SAT, "C")), Month(Cells(SAT, "C")), _
.VLookup(Cells(SAT, "I"), Range("O4:Q" & Rows.Count), 2, 0) + 10)
End If: End If: Next: End With
Application.ScreenUpdating = True
MsgBox "İşlem Tamamlandı" & vbLf & Application.UserName, _
vbInformation, "asi_kral_1967"
End Sub
Dosyanız Ekte.
 

Ekli dosyalar

Çok teşekkürler asi_kral
Kusuruma bakmayın Affınıza sığınarak bir şey daha belirteceğim ama,
Kasa veya nakit olarak tanımladığında ise işlem tarihi ile aynı tarihi vermesi gerekiyor
yarım ve eksik dosya göndermemden kaynaklanıyor.
Oldu olmuşken Kasa işlemleri de takip edilsin


İyi çalışmalar...
Yb®
 
Son düzenleme:
Çok teşekkürler asi_kral
Kusuruma bakmayın Affınıza sığınarak bir şey daha belirteceğim ama,
Kasa veya nakit olarak tanımladığında ise işlem tarihi ile aynı tarihi vermesi gerekiyor
yarım ve eksik dosya göndermemden kaynaklanıyor.
Oldu olmuşken Kasa işlemleri de takip edilsin


İyi çalışmalar...
Yb®

İyi tamamda dosyayı güncelleyin o şekilde
 
Güncel hali ektedir Kart bilgileri 2. sayfada olabilir mi kes taşı yapıştır yaptığımda kod çalışmıyor
Çok teşekkürler asi_kral

İyi çalışmalar...
Yb®
 

Ekli dosyalar

Son düzenleme:
Güncel hali ektedir Kart bilgileri 2. sayfada olabilir mi kes taşı yapıştır yaptığımda kod çalışmıyor
Çok teşekkürler asi_kral

İyi çalışmalar...
Yb®

Merhaba
Sorularınızı parça parça soruyorsunuz tamam bunu geçtim dosyanızda söylediğinize uymuyor nasıl yapacağımı şaşırıyorum.
Üstte istediğiniz Kasa ve Nakit için çözüm
Kod:
Option Explicit
Sub son_ödeme_tarihi_1967()
'Konu       :   Son Ödeme Listesine Göre Tarih Belirleme
'Mail       :   m.batu.1967@gmail.com
'Msn        :   m.batu.1967@hotmail.com.tr
'Skype      :   m.batu.1967
'Coder By   :   asi_kral_1967
Dim SAT As Long
Application.ScreenUpdating = False
With WorksheetFunction
For SAT = 4 To Cells(Rows.Count, "C").End(xlUp).Row
If Cells(SAT, "C") <> Empty And .CountIf(Range("O4:O" & Rows.Count), Cells(SAT, "I")) > 0 Then
If .Proper(Cells(SAT, "I")) = "Kasa" Or .Proper(Cells(SAT, "I")) = "Nakit" Then
Cells(SAT, "D") = Cells(SAT, "C")
ElseIf DateSerial(Year(Cells(SAT, "C")), Month(Cells(SAT, "C")), .VLookup(Cells(SAT, "I"), _
Range("O4:Q" & Rows.Count), 2, 0)) < Cells(SAT, "C") Then
Cells(SAT, "D") = DateSerial(Year(Cells(SAT, "C")), Month(Cells(SAT, "C")) + 1, _
.VLookup(Cells(SAT, "I"), Range("O4:Q" & Rows.Count), 2, 0) + 10)
Else
Cells(SAT, "D") = DateSerial(Year(Cells(SAT, "C")), Month(Cells(SAT, "C")), _
.VLookup(Cells(SAT, "I"), Range("O4:Q" & Rows.Count), 2, 0) + 10)
End If: End If: Next: End With
Application.ScreenUpdating = True
MsgBox "İşlem Tamamlandı" & vbLf & Application.UserName, _
vbInformation, "asi_kral_1967"
End Sub
Dosyanız Ekte.
 

Ekli dosyalar

Geri
Üst