• DİKKAT

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

Çözüldü Farklı sayfada bulunan tarih kriterine göre veri çekme

Katılım
9 Eylül 2010
Mesajlar
879
Excel Vers. ve Dili
2016&2019&2021 TR
Merhabalar. Dosya içerisine de yazdım. Farklı sayfada bulunan verileri tarihe göre diğer sayfaya almak istiyorum. Sorgu sayfasında bulunan E1 hücresine yazdığım tarihi VT sayfasında arayıp eşleşenleri sorgu sayfasında listelemek istiyorum. Normal değerleri getirebiliyorum ancak tarih olunca getiremedim.

Yardımlarınız için teşekkürler.
 

Ekli dosyalar

Merhaba,

Eğer kullandığınız sürüm FİLTRE fonksiyonunu destekliyorsa makro kullanmanıza gerek yok.

Formülü A3 hücresine uygulamanız yeterli olacaktır. Tüm sonuçlar dökülmeli olarak listelenecektir.

C++:
=FİLTRE(VT!$A:$G;VT!$E:$E=$E$1)
 
Hocam maalesef sadece evde 21 var bürolarda 19 ve 16 bu nedenle filtreyi kullanamıyorum.
 
Deneyiniz.

C++:
Option Explicit

Sub My_Report()
    Dim My_Connection As Object, My_Recordset As Object, My_Query As String
    
    Application.ScreenUpdating = False
 
    Set My_Connection = CreateObject("AdoDB.Connection")
    Set My_Recordset = CreateObject("ADODB.Recordset")
 
    Sheets("Sorgu").Range("A3:G" & Rows.Count).ClearContents
    
    My_Connection.Open "Provider=Microsoft.Ace.OleDb.12.0;Data Source=" & _
    ThisWorkbook.FullName & ";Extended Properties=""Excel 12.0;Hdr=Yes;Imex=1"""
 
    My_Query = "Select * From [VT$] Where Tarih = " & CLng(Sheets("Sorgu").Range("E1").Value)
    
    My_Recordset.Open My_Query, My_Connection, 1, 1
    
    Sheets("Sorgu").Range("A3").CopyFromRecordset My_Recordset
    
    Sheets("Sorgu").Range("E3:E" & Rows.Count).NumberFormat = "dd.mm.yyyy"
    Sheets("Sorgu").Range("F3:G" & Rows.Count).NumberFormat = "hh:mm"
    Columns.AutoFit
  
    My_Recordset.Close
    My_Connection.Close
 
    Set My_Recordset = Nothing
    Set My_Connection = Nothing
 
    MsgBox "İşleminiz tamamlanmıştır"
End Sub
 
My_Recordset.Open My_Query, My_Connection, 1, 1
Korhan Bey bu satırda hata veriyor. Ekstra yapmam gereken bir düzenlememi var acaba.
Yanıtınız için teşekkürler hocam.
 
Alternatif olarak bunu deneyin, aynı hatayı alacak mısınız ?

.
 

Ekli dosyalar

Hocam farklı bir hata verdi "Can't execute code in break mode"
 
:)

Kod bir yerde hata vermiş, çalıştırmaya devam etmişiniz....

Dosyayı kapatıp, tekrar açın ve butona basın...

.
 
Teşekkür ederim Haluk Bey. Reset attım her şey düzeldi.
 
Benim önerdiğim kodun verdiği hata mesajı nedir?
 
My_Recordset.Open My_Query, My_Connection, 1, 1

Korhan Bey bu satırda hata verdi. Ama dosyayı değiştirince sizin kodunuz da çalıştı. Sanırım dosyada bir hata var. Çok teşekkür ederim.
 
Değerli hocalarım tarihi diğer alanlar için nasıl düzenleyebilirim. Benim bulduğum kod 1 dakikanın üzerinde getiriyor 50 bin satırı. sizin kodlar 3-4-5 saniyede. Örneklere de baktım ama biraz uzak kalınca unutuyoruz kusura bakmayın.
 
ADO uygulamalarında sayısal verileri sorgularken direkt yazabilirsiniz. Metinsel verileri sorgularke ise kriteri tek tırnak arasına almalısınız.

Örnek;

.... Where [Hesap Kodu] = 123456
.... Where [Hesap Adı] = 'Deneme'
 
Hocam bildiğim bir konuydu ama uygulamada unuttum. Çok teşekkürler.
 
Korhan Bey o kuralı uygulamama rağmen veriyi getiremiyorum. Dosya da mı hata var emin olamadım. Satırı düzenleyip gönderebilmeniz mümkün müdür acaba.
 
Hangi kritere göre neyi nereye almak istediğinizi örnek dosyanız üzerinde paylaşırsanız destek verebiliriz.
 
Hocam ekledim dosyaya. Sorgu sayfası D1 de yazan personel ismini veri tabanında aratıp sorgu sayfasına çekmek istiyorum. Dosya içerisinde de açıklama mevcut.
 

Ekli dosyalar

C#:
    strSQL = "Select * From [VT$A2:G] Where [Personel]='" & Sheets("Sorgu").Range("D1") & "'"

.
 
Sorgu satırı aşağıdaki gibi olmalıdır..

C++:
My_Query = "Select * From [VT$] Where Tarih = " & CLng(Sheets("Sorgu").Range("E1").Value) & " And [Personel] = '" & Sheets("Sorgu").Range("D1").Value & "'"
 
Geri
Üst