Tarih sorgusu hakkında (aa/yyyy)

Katılım
22 Mart 2007
Mesajlar
7
Excel Vers. ve Dili
Turkce 2003
Merhabalar,

Ekteki dosya ile ilgili yardıma ihtiyacım var. Forumdaki örnekleri inceledim ama aa/yyyy türünde yapılan giriş ile bugünkü tarihi kıyaslayacak düzgün çalışan bir kod yazamadım.

Not: Orijinal dosya oldukça büyük ve sorgu çeşitleri daha fazla ama ben sorunumun daha kolay anlaşılması için diğer yerleri sildim. Yardıma ihtiyacım olan yerleri Visual Basic içinde belirttim. Yardımcı olacaklara şimdiden teşekkürler...
 
Son düzenleme:
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Kod sayfanızda belirttiğiniz açıklamaya göre :

Bugünkü tarihten TextBox1'e yazılan ay kadar sonrası ile
Stok sayfasındaki N sütunu ile karşılaştırıp
küçük olan tarihleri içeren satırların Rapor sayfasına aktarılması ile ilgili kodlar yazılacak.
Örneğin text boxa 3 yazılıp basılırsa
(bugün için)Stok sayfasındaki 13. ve 14. satırlar Rapor sayfasına aktarılacak
sadece 13 ve 14. satırlar değil ayrıca 8. ve 9.satırlar da, belirttiğiniz koşula uymakta ... Unuttuğunuz bir koşul daha olabilir mi acaba?

Aşağıdaki kodları, kendinizinkiyle değiştiriniz.

Kod:
Private Sub CommandButton3_Click()
If TextBox1.Value < 1 Or TextBox1.Value > 12 Then
   MsgBox "1-12 arasında bir rakam giriniz !  ", vbCritical, " U Y A R I  !                                                                                          irayka "
   TextBox1 = ""
   Exit Sub
End If
[COLOR=green]'.........................................
'Buraya;
'bugünkü tarihten TextBox1'e yazılan ay kadar sonrası ile
'Stok sayfasındaki N sütunu ile karşılaştırıp
'küçük olan tarihleri içeren satırların Rapor sayfasına aktarılması ile ilgili kodlar yazılacak.
'Örneğin text boxa 3 yazılıp basılırsa
'(bugün için)Stok sayfasındaki 13. ve 14. satırlar Rapor sayfasına aktarılacak.
[/COLOR]Sheets("Rapor").Range("A2:AZ65536").ClearContents
Sheets("Rapor").Cells(1, 1).Resize(2, 18).Value = Sheets("Stok").Range("A4:R5").Value
hedeftarih = CDate("01" & "." & Month(DateAdd("m", 3, Date)) & "." & Year(DateAdd("m", 3, Date)))
y = 2
For i = 6 To Sheets("Stok").Cells(65536, 2).End(xlUp).Row
    ayrac = Application.WorksheetFunction.Find("/", Sheets("Stok").Cells(i, 14), 1)
    uzunluk = Len(Sheets("Stok").Cells(i, 14))
    aay = Left(Sheets("Stok").Cells(i, 14), ayrac - 1)
    yyil = Right(Sheets("Stok").Cells(i, 14), uzunluk - ayrac)
    tarih = CDate("01" & "." & aay & "." & yyil)
    If tarih < hedeftarih Then
       y = y + 1
       For j = 1 To 18
           Sheets("Rapor").Cells(y, j) = Sheets("Stok").Cells(i, j)
       Next j
    End If
Next i
Sheets("Rapor").Select
Unload Me
[COLOR=green]'............................................[/COLOR]
End Sub
 
Katılım
22 Mart 2007
Mesajlar
7
Excel Vers. ve Dili
Turkce 2003
Merhabalar,

Sayın fpc, öncelikle cevabınız için teşekkür ederim. Bu arada ben yanlış dosyayı upload etmişim:roll: , buna rağmen anlatmak istediğimi kısmen anlayıp cevap yazdığınız için ayrıca teşekkür ederim.

Vermiş olduğunuz kodu ekledim. Sorunumun %50'si halloldu. Şimdi "Sorgula" tuşuna basıldığında çıkan formdaki üstte bulunan tuş kullanıldığında, tam istediğim gibi bugünle 14. sütundaki tarihleri karşılaştırıp küçük olanları (Son kullanma tarihi geçenleri) raporluyor.

Ancak textboxa rakam girip ikinci tuşa basıldığında, buraya girilen ay kadar bugünkü tarihe eklenip 14. sütunla kıyaslama yaparak Son Kullanma tarihi yaklaşanları raporlamak istiyorum. Bundaki amaç, belirli aralıklarla stokları kontrol ettiğimde, örneğin 4 ay içinde SKT'leri bitecek malzemleri tespit edip yenisinin siparişini önceden vermek. (bu raporda, üstteki tuş kullanıldığında görünen SKT'si geçenler görünmese süper olur). Olay textbox ile Cdate ilişkilendirmekle ilgili ancak denemelerimde başarılı olamadım. Bu konuda da müsait olduğunuzda yardımlarınızı bekliyorum :hey:

Not: Düzeltilmiş dosya ekte
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Bahsettiğiniz problem için Aşağıdaki kodları kullanınız.
Kod:
Private Sub CommandButton3_Click()
If TextBox1.Value < 1 Or TextBox1.Value > 12 Then
   MsgBox "1-12 arasında bir rakam giriniz !  ", vbCritical, " U Y A R I  !                                                                                          irayka "
   TextBox1 = ""
   Exit Sub
End If
[COLOR=green]'.........................................
'Buraya;
'bugünkü tarihten TextBox1'e yazılan ay kadar sonrası ile
'Stok sayfasındaki N sütunu ile karşılaştırıp
'küçük olan tarihleri içeren satırların Rapor sayfasına aktarılması ile ilgili kodlar yazılacak.[/COLOR]
Sheets("Rapor").Range("A2:AZ65536").ClearContents
Sheets("Rapor").Cells(1, 1).Resize(2, 18).Value = Sheets("Stok").Range("A4:R5").Value
hedeftarih = CDate("01" & "." & Month(DateAdd("m", TextBox1.Value, Date)) & "." & Year(DateAdd("m", 3, Date)))
y = 2
For i = 6 To Sheets("Stok").Cells(65536, 2).End(xlUp).Row
    ayrac = Application.WorksheetFunction.Find("/", Sheets("Stok").Cells(i, 14), 1)
    uzunluk = Len(Sheets("Stok").Cells(i, 14))
    aay = Left(Sheets("Stok").Cells(i, 14), ayrac - 1)
    yyil = Right(Sheets("Stok").Cells(i, 14), uzunluk - ayrac)
    tarih = CDate("01" & "." & aay & "." & yyil)
    
    fark = DateDiff("m", CDate("01" & "." & Month(Date) & "." & Year(Date)), tarih)
    If fark = TextBox1.Value * 1 Then
       y = y + 1
       For j = 1 To 18
           Sheets("Rapor").Cells(y, j) = Sheets("Stok").Cells(i, j)
       Next j
    End If
Next i
Sheets("Rapor").Select
Unload Me
[COLOR=green]'............................................[/COLOR]
End Sub
 
Katılım
22 Mart 2007
Mesajlar
7
Excel Vers. ve Dili
Turkce 2003
Çok teşekkür ederim, tam istediğim gibi çalışıyor :)
 
Üst