Tarihte hata

Katılım
30 Haziran 2005
Mesajlar
149
Selam arkadaslar,

asagidaki kod yanlis tarih veriyor:

Kod:
Sub TarihGoster() 

    Dim ilkTarih As String 
    Dim sonTarih As String 

    ilkTarih = InputBox("Ilk Tarih: (dd/mm/yy)") 
    ilkTarih = Format(ilkTarih, "dd/mm/yy") 

    sonTarih = InputBox("Son Tarih: (dd/mm/yy)") 
    sonTarih = Format(sonTarih, "dd/mm/yy") 

    MsgBox Format(ilkTarih, "dd-mmm-yy") 
    MsgBox Format(sonTarih, "dd-mmm-yy") 

End Sub
Ayrica ilkTarih ve sonTarih'i DateValue() icine almayida denedim

Kod:
Sub TarihGoster() 

    Dim ilkTarih As String 
    Dim sonTarih As String 

    ilkTarih = InputBox("Ilk Tarih: (dd/mm/yy)") 
    ilkTarih = Format(DateValue(ilkTarih), "dd/mm/yy") 

    sonTarih = InputBox("Son Tarih: (dd/mm/yy)") 
    sonTarih = Format(DateValue(sonTarih), "dd/mm/yy") 

    MsgBox Format(ilkTarih, "dd-mmm-yy") 
    MsgBox Format(sonTarih, "dd-mmm-yy") 

End Sub
ama sonuc ayni


ilkTarih icin 2/1/05 giriyorum msgbox dogru yaniti veriyor (2-Oca-05)
sonTarih icin 19/2/05 giriyorum msgbox bu sefer 2-May-19 diyor.

Sorun nerdedir, naisl duzeltebilirim? Ayrica nasil oluyorda ilkTarih dogru yaniti verirken ayni usulle yaptigim sonTarih yanlis sonucu veriyor bilen varmidir acaba?

Tesekurler[/code]
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Ben denedim doğru sonuç verdi. Birde yılı yazmadan deneyin. Ã?rneğin; ilk tarih için 2-1, son tarih içinde 19-2
 
Katılım
30 Haziran 2005
Mesajlar
149
O zaman da kodda debug sorunu veriyodu, ama cozumu bi sekilde internetten buldum

modifiye edilmis kod asagidaki gibi olacakmis:

Kod:
Sub tarihAktar()

    Dim startDate As String
    Dim stopDate As String
    Dim prodName As String
    Dim D As Integer
    Dim M As Integer
    Dim Y As Integer
    
    
    startDate = InputBox("Baslangic Tarihi Gir (gun/ay/yil)")
    stopDate = InputBox("Bitis Tarihi Gir (gun/ay/yil)")
    
    On Error GoTo NoDate
    startDate = WorksheetFunction.Substitute(startDate, "/", "@", 2)
    D = Left(startDate, InStr(1, startDate, "/") - 1)
    M = Mid(startDate, InStr(1, startDate, "/") + 1, InStr(1, startDate, "@") - InStr(1, startDate, "/") - 1)
    Y = WorksheetFunction.Substitute(startDate, D & "/" & M & "@", "")
    startDate = Format(DateSerial(Y, M, D), "dd-mmm-yy")
    stopDate = WorksheetFunction.Substitute(stopDate, "/", "@", 2)
    D = Left(stopDate, InStr(1, stopDate, "/") - 1)
    M = Mid(stopDate, InStr(1, stopDate, "/") + 1, InStr(1, stopDate, "@") - InStr(1, stopDate, "/") - 1)
    Y = WorksheetFunction.Substitute(stopDate, D & "/" & M & "@", "")
    stopDate = Format(DateSerial(Y, M, D), "dd-mmm-yy")
    
    prodName = InputBox("Product Name Gir")
    
    With Worksheets("Sheet1")
        .AutoFilterMode = False
        .Range("a4:f4").AutoFilter
        .Range("a4:f4").AutoFilter Field:=2, Criteria1:=prodName
        .Range("a4:f4").AutoFilter Field:=1, Criteria1:=(">=" & startDate), _
            Operator&#58;=xlAnd, Criteria2&#58;=&#40;"<=" & stopDate&#41;
        
    End With
Exit Sub
NoDate&#58;
    MsgBox "HATA&#58;" & Chr&#40;13&#41; & _
    "1&#41; Iki tarihten biri girilmemistir" & Chr&#40;13&#41; _
    & "2&#41; Tarihlerden biri eksik yada yanlis girilmistir" & Chr&#40;13&#41; & Chr&#40;13&#41; & _
    "Tarihleri GUN/AY/YIL formatinda RAKAMLA yazarak tekrar deneyiniz"
End Sub
yinede ilginize tesekurler
 
Üst