Araç muayene tarihi

gurbuzs

Altın Üye
Katılım
10 Kasım 2004
Mesajlar
195
Excel Vers. ve Dili
Office 360 Tr
Altın Üyelik Bitiş Tarihi
24-10-2024
251838
Tescil tarihine göre önümüzdeki günlerde ne zaman muayeneye gireceğini bulmak için formule ihtiyacım var.
Sarı alanı otomatize etmem gerekiyor.
 

Ekli dosyalar

gurbuzs

Altın Üye
Katılım
10 Kasım 2004
Mesajlar
195
Excel Vers. ve Dili
Office 360 Tr
Altın Üyelik Bitiş Tarihi
24-10-2024
Turgay bey öncelikle teşekkürler. ben de buna benzer bir formul yaptım ama bu şekilde istemiyorum.
bugün tarih 29 mayıs 2024. bugünden sonraki günlerdeki ilk muayene tarihini görmem lazım.
araç mesela 2006 ise yanyana birsürü kolon değil de tek seferde tarihi görmem lazım.
tekrar ilginize teşekkür ederim
 

gurbuzs

Altın Üye
Katılım
10 Kasım 2004
Mesajlar
195
Excel Vers. ve Dili
Office 360 Tr
Altın Üyelik Bitiş Tarihi
24-10-2024
Merhaba.

Dosyanız ekte.
Muzaffer Ali bey dosyanıza ekleme yaptım ekte görebilirsiniz.
bir adım daha ileri götürürsek.
bu formüller doğru..ancak araç tescil tarihi var ama araç muayene tarihi varsa ruhsatta o zaman iş değişiyor.
muayeneye girdiyse ve tarih varsa hesaplamalar bu muayene tarihinden itibaren olacak ama binekler 2 yılda bir ticariler her yılda bir yani tek kural.
muayene tarihi yoksa tescil tarihinden aynı formul çalışacak.
bu şekilde olabilir mi?
 

Ekli dosyalar

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,165
Excel Vers. ve Dili
2019 Türkçe
Tarih olarak muayene tarihi varsa tescil tarihi kısmına bir yıl öncesini yazabilirsiniz.
 

gurbuzs

Altın Üye
Katılım
10 Kasım 2004
Mesajlar
195
Excel Vers. ve Dili
Office 360 Tr
Altın Üyelik Bitiş Tarihi
24-10-2024
Tarih olarak muayene tarihi varsa tescil tarihi kısmına bir yıl öncesini yazabilirsiniz.
tabi olabilir ama yanlış olur o zaman. biliyosunuz ülkemizde günü gününe kimse muayeneye gitmiyor ceza da yese geç gidiyor veya 1 ay önce gidiyor. o zaman tarihler hep muayeneye gittiği tarihten sayıyor.
formül olursa çok daha doğru olur.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,165
Excel Vers. ve Dili
2019 Türkçe
Aşağıdaki kodu kullanın.

Kod:
Private Sub btnMuayene_Click()
    Dim Bak As Long
    Dim Yil As Long
    Dim Tarih As Date
    Dim stp As Byte
    Dim Yill  As Integer
    
    For Bak = 3 To Cells(Rows.Count, "B").End(xlUp).Row
        If Cells(Bak, "D").Value = "Ticari" Then
            If IsDate(Cells(Bak, "E").Value) Then
                Cells(Bak, "F").Value = DateAdd("YYYY", 1, Cells(Bak, "E").Value)
                GoTo 1
            End If
            stp = 1
            Yill = Year(Cells(Bak, "B").Value)
        ElseIf Cells(Bak, "D").Value = "Binek" Then
            If IsDate(Cells(Bak, "E").Value) Then
                Cells(Bak, "F").Value = DateAdd("YYYY", 2, Cells(Bak, "E").Value)
                GoTo 1
            End If
            Tarih = DateAdd("YYYY", 3, Cells(Bak, "B").Value)
            If Tarih > Date Then
                Cells(Bak, "F").Value = Tarih
                Yill = Year(Tarih)
                GoTo 1
            Else
                stp = 2
                Yill = Year(Tarih)
            End If
        End If
        
        For Yil = Yill To Year(Now) + 4 Step stp
            Tarih = DateSerial(Yil, Month(Cells(Bak, "B").Value), Day(Cells(Bak, "B").Value))
            If Tarih > Date Then
                Cells(Bak, "F").Value = Tarih
                Exit For
            End If
        Next
1:
    Next
    MsgBox "Tamamlandı."
End Sub
 

gurbuzs

Altın Üye
Katılım
10 Kasım 2004
Mesajlar
195
Excel Vers. ve Dili
Office 360 Tr
Altın Üyelik Bitiş Tarihi
24-10-2024
Aşağıdaki kodu kullanın.

Kod:
Private Sub btnMuayene_Click()
    Dim Bak As Long
    Dim Yil As Long
    Dim Tarih As Date
    Dim stp As Byte
    Dim Yill  As Integer
   
    For Bak = 3 To Cells(Rows.Count, "B").End(xlUp).Row
        If Cells(Bak, "D").Value = "Ticari" Then
            If IsDate(Cells(Bak, "E").Value) Then
                Cells(Bak, "F").Value = DateAdd("YYYY", 1, Cells(Bak, "E").Value)
                GoTo 1
            End If
            stp = 1
            Yill = Year(Cells(Bak, "B").Value)
        ElseIf Cells(Bak, "D").Value = "Binek" Then
            If IsDate(Cells(Bak, "E").Value) Then
                Cells(Bak, "F").Value = DateAdd("YYYY", 2, Cells(Bak, "E").Value)
                GoTo 1
            End If
            Tarih = DateAdd("YYYY", 3, Cells(Bak, "B").Value)
            If Tarih > Date Then
                Cells(Bak, "F").Value = Tarih
                Yill = Year(Tarih)
                GoTo 1
            Else
                stp = 2
                Yill = Year(Tarih)
            End If
        End If
       
        For Yil = Yill To Year(Now) + 4 Step stp
            Tarih = DateSerial(Yil, Month(Cells(Bak, "B").Value), Day(Cells(Bak, "B").Value))
            If Tarih > Date Then
                Cells(Bak, "F").Value = Tarih
                Exit For
            End If
        Next
1:
    Next
    MsgBox "Tamamlandı."
End Sub
ellerinize sağlık. çok teşekkür ederim.
 

gurbuzs

Altın Üye
Katılım
10 Kasım 2004
Mesajlar
195
Excel Vers. ve Dili
Office 360 Tr
Altın Üyelik Bitiş Tarihi
24-10-2024
Aşağıdaki kodu kullanın.

Kod:
Private Sub btnMuayene_Click()
    Dim Bak As Long
    Dim Yil As Long
    Dim Tarih As Date
    Dim stp As Byte
    Dim Yill  As Integer
   
    For Bak = 3 To Cells(Rows.Count, "B").End(xlUp).Row
        If Cells(Bak, "D").Value = "Ticari" Then
            If IsDate(Cells(Bak, "E").Value) Then
                Cells(Bak, "F").Value = DateAdd("YYYY", 1, Cells(Bak, "E").Value)
                GoTo 1
            End If
            stp = 1
            Yill = Year(Cells(Bak, "B").Value)
        ElseIf Cells(Bak, "D").Value = "Binek" Then
            If IsDate(Cells(Bak, "E").Value) Then
                Cells(Bak, "F").Value = DateAdd("YYYY", 2, Cells(Bak, "E").Value)
                GoTo 1
            End If
            Tarih = DateAdd("YYYY", 3, Cells(Bak, "B").Value)
            If Tarih > Date Then
                Cells(Bak, "F").Value = Tarih
                Yill = Year(Tarih)
                GoTo 1
            Else
                stp = 2
                Yill = Year(Tarih)
            End If
        End If
       
        For Yil = Yill To Year(Now) + 4 Step stp
            Tarih = DateSerial(Yil, Month(Cells(Bak, "B").Value), Day(Cells(Bak, "B").Value))
            If Tarih > Date Then
                Cells(Bak, "F").Value = Tarih
                Exit For
            End If
        Next
1:
    Next
    MsgBox "Tamamlandı."
End Sub
Ali bey burada bir hata tespit ettim ama çözemedim. altta dosyayı da ekliyorum.
251886
 

Ekli dosyalar

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,165
Excel Vers. ve Dili
2019 Türkçe
Deneyiniz.
Kod:
Private Sub btnMuayene_Click()
    Dim Bak As Long
    Dim Yil As Long
    Dim Tarih As Date
    Dim stp As Byte
    Dim Yill  As Integer
    
    For Bak = 3 To Cells(Rows.Count, "B").End(xlUp).Row
        If Cells(Bak, "D").Value = "Ticari" Then
            stp = 1
            If IsDate(Cells(Bak, "E").Value) Then
                Tarih = Cells(Bak, "E").Value
            Else
                Tarih = Cells(Bak, "B").Value
            End If
        ElseIf Cells(Bak, "D").Value = "Binek" Then
            stp = 2
            If IsDate(Cells(Bak, "E").Value) Then
                Tarih = Cells(Bak, "E").Value
            Else
                Tarih = DateAdd("YYYY", 3, Cells(Bak, "B").Value)
                If Tarih > Date Then
                    Cells(Bak, "F").Value = Tarih
                    GoTo 1
                Else
                    Yill = Year(Tarih)
                End If
            End If
        End If
        
        For Yil = Year(Tarih) To Year(Now) + 4 Step stp
            Tarih = DateSerial(Yil, Month(Tarih), Day(Tarih))
            If Tarih > Date Then
                Cells(Bak, "F").Value = Tarih
                Exit For
            End If
        Next
1:
    Next
    MsgBox "Tamamlandı."
End Sub
 

gurbuzs

Altın Üye
Katılım
10 Kasım 2004
Mesajlar
195
Excel Vers. ve Dili
Office 360 Tr
Altın Üyelik Bitiş Tarihi
24-10-2024
Deneyiniz.
Kod:
Private Sub btnMuayene_Click()
    Dim Bak As Long
    Dim Yil As Long
    Dim Tarih As Date
    Dim stp As Byte
    Dim Yill  As Integer
   
    For Bak = 3 To Cells(Rows.Count, "B").End(xlUp).Row
        If Cells(Bak, "D").Value = "Ticari" Then
            stp = 1
            If IsDate(Cells(Bak, "E").Value) Then
                Tarih = Cells(Bak, "E").Value
            Else
                Tarih = Cells(Bak, "B").Value
            End If
        ElseIf Cells(Bak, "D").Value = "Binek" Then
            stp = 2
            If IsDate(Cells(Bak, "E").Value) Then
                Tarih = Cells(Bak, "E").Value
            Else
                Tarih = DateAdd("YYYY", 3, Cells(Bak, "B").Value)
                If Tarih > Date Then
                    Cells(Bak, "F").Value = Tarih
                    GoTo 1
                Else
                    Yill = Year(Tarih)
                End If
            End If
        End If
       
        For Yil = Year(Tarih) To Year(Now) + 4 Step stp
            Tarih = DateSerial(Yil, Month(Tarih), Day(Tarih))
            If Tarih > Date Then
                Cells(Bak, "F").Value = Tarih
                Exit For
            End If
        Next
1:
    Next
    MsgBox "Tamamlandı."
End Sub
süper.
teşekkür ederim
 
Üst