Çözüldü Yıl ve Ay seçimine göre Maaş dönemi belirleme

sirkülasyon

Altın Üye
Katılım
10 Temmuz 2012
Mesajlar
2,492
Excel Vers. ve Dili
2021 LTSC TR
Altın Üyelik Bitiş Tarihi
18-06-2026
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Yıl As Integer
    Dim Ay As String
    Yıl = Range("D2").Value
    Ay = Range("D3").Value
    
    If Ay = "Ocak" Then
        Range("F2").Value = DateSerial(Yıl - 1, 12, 15)
        Range("F3").Value = DateSerial(Yıl, 1, 14)
    ElseIf Ay = "Şubat" Then
        Range("F2").Value = DateSerial(Yıl, 1, 14)
        Range("F3").Value = DateSerial(Yıl, 2, 15)
    ElseIf Ay = "Mart" Then
        Range("F2").Value = DateSerial(Yıl, 2, 14)
        Range("F3").Value = DateSerial(Yıl, 3, 15)
    ElseIf Ay = "Nisan" Then
        Range("F2").Value = DateSerial(Yıl, 3, 14)
        Range("F3").Value = DateSerial(Yıl, 4, 15)
    ElseIf Ay = "Mayıs" Then
        Range("F2").Value = DateSerial(Yıl, 4, 14)
        Range("F3").Value = DateSerial(Yıl, 5, 15)
    ElseIf Ay = "Haziran" Then
        Range("F2").Value = DateSerial(Yıl, 5, 14)
        Range("F3").Value = DateSerial(Yıl, 6, 15)
    ElseIf Ay = "Temmuz" Then
        Range("F2").Value = DateSerial(Yıl, 6, 14)
        Range("F3").Value = DateSerial(Yıl, 7, 15)
    ElseIf Ay = "Ağustos" Then
        Range("F2").Value = DateSerial(Yıl, 7, 14)
        Range("F3").Value = DateSerial(Yıl, 8, 15)
    ElseIf Ay = "Eylül" Then
        Range("F2").Value = DateSerial(Yıl, 8, 14)
        Range("F3").Value = DateSerial(Yıl, 9, 15)
    ElseIf Ay = "Ekim" Then
        Range("F2").Value = DateSerial(Yıl, 9, 14)
        Range("F3").Value = DateSerial(Yıl, 10, 15)
    ElseIf Ay = "Kasım" Then
        Range("F2").Value = DateSerial(Yıl, 10, 14)
        Range("F3").Value = DateSerial(Yıl, 11, 15)
    ElseIf Ay = "Aralık" Then
        Range("F2").Value = DateSerial(Yıl, 11, 14)
        Range("F3").Value = DateSerial(Yıl + 1, 1, 15)
    End If
End Sub
Hayırlı Sabahlar. Hayırlı Ramazanlar
Yukarıdaki kod bloğu ile Seçilen yıl ve ay durumuna göre tarih belirlemek istedim. Ama sürekli exceli kapatıyor ve hata veriyor.
Amaç;
Ay Ocak ise F2 Hücresine bir önceki yılın Aralık ayının 15'ini F3 hücresine Seçilen Yıl ve Ayın 14' ünü
Ay Aralık ise F2 hücresine Seçilen Yıl ve Ayın 14' ünü F3 Hücresine bir sonraki yılın Ocak ayının 15'ini aktar
diğer aylarda F2 hücresine Seçilen Ayının 14' ünü F3 Hücresine Bir sonraki ayın 15'ini yazdırmak istiyorum
Yardımcı olabilir misiniz?
 

muygun

Özel Üye
Katılım
6 Temmuz 2004
Mesajlar
9,108
Excel Vers. ve Dili
Excel-2003 Türkçe
Merhaba;

Private Sub Worksheet_Change(ByVal Target As Range)
sat = Target.Row
süt = Target.Column
If sat >= 2 And sat <= 3 And süt = 4 And Cells(sat, süt) <> "" Then
Range("f2:f3").ClearContents
Dim Yıl As Integer
Dim Ay As String
Yıl = Range("D2").Value
Ay = Range("D3").Value

If Ay = "Ocak" Then
Range("F2").Value = DateSerial(Yıl - 1, 12, 15)
Range("F3").Value = DateSerial(Yıl, 1, 14)
End If

If Ay = "Şubat" Then
Range("F2").Value = DateSerial(Yıl, 1, 14)
Range("F3").Value = DateSerial(Yıl, 2, 15)
End If

If Ay = "Mart" Then
Range("F2").Value = DateSerial(Yıl, 2, 14)
Range("F3").Value = DateSerial(Yıl, 3, 15)
End If

If Ay = "Nisan" Then
Range("F2").Value = DateSerial(Yıl, 3, 14)
Range("F3").Value = DateSerial(Yıl, 4, 15)
End If

If Ay = "Mayıs" Then
Range("F2").Value = DateSerial(Yıl, 4, 14)
Range("F3").Value = DateSerial(Yıl, 5, 15)
End If

If Ay = "Haziran" Then
Range("F2").Value = DateSerial(Yıl, 5, 14)
Range("F3").Value = DateSerial(Yıl, 6, 15)
End If

If Ay = "Temmuz" Then
Range("F2").Value = DateSerial(Yıl, 6, 14)
Range("F3").Value = DateSerial(Yıl, 7, 15)
End If

If Ay = "Ağustos" Then
Range("F2").Value = DateSerial(Yıl, 7, 14)
Range("F3").Value = DateSerial(Yıl, 8, 15)
End If

If Ay = "Eylül" Then
Range("F2").Value = DateSerial(Yıl, 8, 14)
Range("F3").Value = DateSerial(Yıl, 9, 15)
End If

If Ay = "Ekim" Then
Range("F2").Value = DateSerial(Yıl, 9, 14)
Range("F3").Value = DateSerial(Yıl, 10, 15)
End If

If Ay = "Kasım" Then
Range("F2").Value = DateSerial(Yıl, 10, 14)
Range("F3").Value = DateSerial(Yıl, 11, 15)
End If

If Ay = "Aralık" Then
Range("F2").Value = DateSerial(Yıl, 11, 14)
Range("F3").Value = DateSerial(Yıl + 1, 1, 15)
End If
End If
End Sub

Şeklinde deneyin.
İyi çalışmalar.
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,604
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("D2:D3")) Is Nothing Then
        Dim yil, ay, tarih
        yil = Range("D2").Value
        ay = Range("D3").Value
        If yil <> "" And ay <> "" Then
            tarih = DateValue("15 " & ay & " " & yil)
            ay = Month(tarih)
            If ay = 1 Then
                ay = 12: yil = yil - 1
            Else
                ay = ay - 1
            End If
            Application.EnableEvents = False
            Range("F2").Value = DateSerial(yil, ay, 14)
            Range("F3").Value = tarih
            Application.EnableEvents = True
        End If
    End If
End Sub
 

sirkülasyon

Altın Üye
Katılım
10 Temmuz 2012
Mesajlar
2,492
Excel Vers. ve Dili
2021 LTSC TR
Altın Üyelik Bitiş Tarihi
18-06-2026
Her iki muygun ve veyselemre üstadıma ayrı ayrı teşekkür eder, saygılarımı sunarım
 
Üst