• DİKKAT

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

iki tarih arası veri seçmek

Katılım
29 Mayıs 2008
Mesajlar
81
Excel Vers. ve Dili
2007
ilk tarih .Son tarih
1 01.10.2012 15.10.2012
2 05.10.2012 12.10.2012
3 09.10.2012 18.10.2012
4 20.10.2012 30.10.2012

Tarih Aralığı : 01.10.2012 ile 18.10.2012 nasıl seçerim.

Örnek ;
Cells(i, "A") >= TarB And Cells(i, "B") <= TarS Then şeklinde mi olmalı.
 
A sütunundaki değer 01.10.2012'den büyük (eşit) herhangi bir tarih, B sütunundaki değer 18.10.2012'den küçük (eşit) herhangi bir tarih şeklinde mi olacak?

yoksa hem A hem de B sütunundaki tarihler 01-18.10.2012 arasında olanlar mı seçilecek?
 
hem A hem de B sütunundaki tarihler 01-18.10.2012 arasında olanları sayfa2 ye yapıştırmak için makro yazmaya çalışıyorum.

Bu örnek üzerinden sonuç almaya çalıştım.

Sub Raporla()
Dim i As Long, _
j As Long, _
ShS As Worksheet, _
Sh1 As Worksheet, _
TarB As Date, _
TarS As Date, _
Kol As Integer
Kol = 1
Set ShS = Sheets("SORGU")
Set Sh1 = Sheets("Kayıt Listesi")

TarB = ShS.Cells(8, Kol + 1)
TarS = ShS.Cells(8, Kol + 2)

j = ShS.Cells(Rows.Count, Kol).End(3).Row

j = 5
ShS.Range(ShS.Cells(5, Kol), ShS.Cells(j, Kol + 4)).ClearContents

Application.ScreenUpdating = False

For i = 2 To Sh1.Cells(Rows.Count, "A").End(3).Row
If Sh1.Cells(i, "A") >= TarB And Sh1.Cells(i, "B") <= TarS Then
j = j + 1
Sh1.Range("A" & i & ": D" & i).Copy ShS.Cells(j, Kol + 1)
End If
Next i
Application.ScreenUpdating = True
Set ShS = Nothing
Set Sh1 = Nothing
MsgBox "İşlem tamamlanmıştır." & vbLf & "bitti", vbOKOnly + vbInformation
End Sub
 
bu iki makro ile sonuç alamadım,

bu iki makro ile sonuç alamadım,

Sub Aktar()
Application.ScreenUpdating = False
Dim sh As Worksheet
Dim sh2 As Worksheet
Set s1 = Sheets("Kayıt Listesi")
Set s2 = Sheets("Rapor")

Dim Bastarih As Date
Dim Bittarih As Date

Bastarih = s2.[F1].Value
Bittarih = s2.[G1].Value

For i = 2 To s1.[B65536].End(3).Row
If Format(s1.Cells(i, "B").Value, "dd.mm.yyyy") >= CDate(Bastarih) Or Format(s1.Cells(i, "C").Value, "dd.mm.yyyy") <= CDate(Bittarih) Then

ss = s2.[G65536].End(3).Row + 1
s1.Rows(i).Copy s2.Rows(ss)
End If
Next

Application.ScreenUpdating = True
MsgBox "Aktarma işlemi tamamlanmıştır.", vbInformation
End Sub


Ekte Örnek Dosya ekledim, yardımlarınızı bekliyorum
 

Ekli dosyalar

  • İK.xls
    İK.xls
    52 KB · Görüntüleme: 29
bu iki makro ile sonuç alamadım,

Sub Aktar()
Application.ScreenUpdating = False
Dim sh As Worksheet
Dim sh2 As Worksheet
Set s1 = Sheets("Kayıt Listesi")
Set s2 = Sheets("Rapor")

Dim Bastarih As Date
Dim Bittarih As Date

Bastarih = s2.[F1].Value
Bittarih = s2.[G1].Value

For i = 2 To s1.[B65536].End(3).Row
If Format(s1.Cells(i, "B").Value, "dd.mm.yyyy") >= CDate(Bastarih) Or Format(s1.Cells(i, "C").Value, "dd.mm.yyyy") <= CDate(Bittarih) Then

ss = s2.[G65536].End(3).Row + 1
s1.Rows(i).Copy s2.Rows(ss)
End If
Next

Application.ScreenUpdating = True
MsgBox "Aktarma işlemi tamamlanmıştır.", vbInformation
End Sub
or yerine and yazıp deneyiniz.:cool:
 
Kod:
Sub Iki_Sutunda_Iki_Tarih_Arasi_Suz_Kopyala()

Dim sh1 As Worksheet, sh2 As Worksheet
Dim rng As Range, frng As Range
Dim BasTarih As Long, BitTarih As Long, ss As Long

Set sh1 = Sheets("Kayıt Listesi")
Set sh2 = Sheets("Rapor")

With sh2
    BasTarih = DateValue(.Range("F1"))
    BitTarih = DateValue(.Range("G1"))
End With

With sh1
    ss = .Range("A" & .Rows.Count).End(xlUp).Row
    Set rng = .Range("$A$1:$D$" & ss)
    rng.Parent.AutoFilterMode = False
    rng.AutoFilter _
        Field:=1, Criteria1:=">=" & BasTarih, Operator:=xlAnd, _
        Criteria2:="<=" & BitTarih
    rng.AutoFilter _
        Field:=2, Criteria1:=">=" & BasTarih, Operator:=xlAnd, _
        Criteria2:="<=" & BitTarih
    On Error Resume Next
    Set frng = .AutoFilter.Range
    On Error GoTo 0
    If Not frng Is Nothing Then frng.Copy sh2.Range("A1")
    rng.Parent.AutoFilterMode = False
End With

End Sub
 
rica ederim.
işe yaradığına sevindim.
 
arkadaşlar bu kod banada lazım.forumda paylaştım böyle birşey istemiştim bende.kodu nasıl kullancağımı bilmiyorum bana yardım edermisiniz.
kalibrasyona gidiş tarihi ile kalibrasyona gideceği tarihler arasında seçim yaptığımda sadece seçtiğim iki tarih arasını gösterecek bir kod lazım.yardım ederseniz sevinirim.
 

Ekli dosyalar

yukarıdaki kod tam istediğinizi yapıyor.

- sayfa isimlerini [Sheets("Kayıt Listesi"), Sheets("Rapor")],

- başlangıç ve bitiş tarihlerinin bulunduğu hücre referanslarını [.Range("F1"), .Range("G1")],

- kritere göre filtreleme yapılacak sütun numaralarını [koddaki Field:=1 A sütununda, ikinci filtre olan Field:=2 B sürununda filtre yapılacağını gösterir]

kendi dosyanıza uyarlarsanız problemi çözebilirsiniz.
 
Geri
Üst