• DİKKAT

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

Araç muayene tarihi

gurbuzs

Altın Üye
Katılım
10 Kasım 2004
Mesajlar
203
Excel Vers. ve Dili
Office 360 Tr
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

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
 
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

Tarih olarak muayene tarihi varsa tescil tarihi kısmına bir yıl öncesini yazabilirsiniz.
 
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.
 
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
 
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.
 
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

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
 
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
 
Geri
Üst