İki tarih arasını sayfalardan aktarma

Ahmet Sami

Altın Üye
Katılım
10 Kasım 2006
Mesajlar
399
Excel Vers. ve Dili
microsoft office 2007-2010-2013-2019-2021
Altın Üyelik Bitiş Tarihi
06-01-2025
İyi günler kıymetli abilerim gönderdiğim örnek dosyada bulunan herhangi İki Tarih Arasındaki Bilgilerin Mevcut Bulunan "Gider, Fatura, Muhtelif" Sayfalarından "Aktar" Sayfasına Aktarılması Gerekiyor yardımlarınız için şimdiden teşekkür ederim.
 

Ekli dosyalar

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,646
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Sub aktar()
    Dim rs As Object, con$, strSQL$, tar1, tar2

    Sheets("AKTAR").Range("2:" & Rows.Count).ClearContents
    Set rs = CreateObject("ADODB.Recordset")

    tar1 = Replace(Format(Sheets("ANASAYFA").Range("H9").Value, "mm/dd/yyyy"), ".", "/")
    tar2 = Replace(Format(Sheets("ANASAYFA").Range("H10").Value, "mm/dd/yyyy"), ".", "/")

    con = "Provider=Microsoft.Ace.OleDb.12.0;Data Source=" & ThisWorkbook.FullName & _
          ";Extended Properties=""Excel 12.0;Hdr=YES"""

    strSQL = "SELECT * FROM " & _
             "( SELECT * FROM [FATURA$] UNION ALL " & _
             "  SELECT * FROM [MUHTELİF$] UNION ALL " & _
             "  SELECT * FROM [GİDER$] ) WHERE TARİH >=#" & _
             tar1 & "# AND TARİH <=#" & tar2 & "# ORDER BY TARİH"

    rs.Open strSQL, con, 1, 1

    Sheets("AKTAR").Range("A2").CopyFromRecordset rs

    rs.Close
End Sub
 

Ahmet Sami

Altın Üye
Katılım
10 Kasım 2006
Mesajlar
399
Excel Vers. ve Dili
microsoft office 2007-2010-2013-2019-2021
Altın Üyelik Bitiş Tarihi
06-01-2025
Veysel bey çok teşekkür ederim. Sağolun.
 

Ahmet Sami

Altın Üye
Katılım
10 Kasım 2006
Mesajlar
399
Excel Vers. ve Dili
microsoft office 2007-2010-2013-2019-2021
Altın Üyelik Bitiş Tarihi
06-01-2025
"( SELECT * FROM [FİRMA ÖDEME$] UNION ALL " & _
" SELECT * FROM [KİŞİ ÖDEME$] UNION ALL " & _
" SELECT * FROM [MAAŞ PRİM$] UNION ALL " & _
" SELECT * FROM [GİDER$] ) WHERE TARİH >=#" & _
tar1 & "# AND TARİH <=#" & tar2 & "# ORDER BY TARİH"
Veysel bey sizi yoruyorum ama kusuruma bakmayın sayfa ismi değiştirince kod
rs.Open strSQL, con, 1, 1
burda hata veriyor
 

Ahmet Sami

Altın Üye
Katılım
10 Kasım 2006
Mesajlar
399
Excel Vers. ve Dili
microsoft office 2007-2010-2013-2019-2021
Altın Üyelik Bitiş Tarihi
06-01-2025
Veysel bey normalde sayfalar gizli yani tarih olarak verileri gizli olan sayfalardan alıyor ondan dolayı bir sıkıntı olabilir mi
 

tahsinanarat

Altın Üye
Katılım
14 Mart 2005
Mesajlar
2,164
Excel Vers. ve Dili
Ofis 2019 Türkçe
Altın Üyelik Bitiş Tarihi
27-05-2028
baya uzun süre sonra yazıyorum ama :) bana bu dosya lazım yardımcı olma şansınız var mı ?
"( SELECT * FROM [FİRMA ÖDEME$] UNION ALL " & _
" SELECT * FROM [KİŞİ ÖDEME$] UNION ALL " & _
" SELECT * FROM [MAAŞ PRİM$] UNION ALL " & _
" SELECT * FROM [GİDER$] ) WHERE TARİH >=#" & _
tar1 & "# AND TARİH <=#" & tar2 & "# ORDER BY TARİH"
Veysel bey sizi yoruyorum ama kusuruma bakmayın sayfa ismi değiştirince kod
rs.Open strSQL, con, 1, 1
burda hata veriyor
Sn. Ahmet Sami Bey; Değiştirdiğiniz sayfa isminin kod içinde de değiştirmeniz gerekiyor, acep bunu mu atlıyorsunuz.
 

Ahmet Sami

Altın Üye
Katılım
10 Kasım 2006
Mesajlar
399
Excel Vers. ve Dili
microsoft office 2007-2010-2013-2019-2021
Altın Üyelik Bitiş Tarihi
06-01-2025
Tahsin bey evet aynı şekilde hem sayfa hemde kod içerisinde değiştiriyorum.
 
Katılım
15 Mart 2005
Mesajlar
379
Excel Vers. ve Dili
Microsoft 365 En 64 Bit
Altın Üyelik Bitiş Tarihi
20-03-2024
Merhaba,

Aşağıdaki şekilde kullanabilirsiniz.

C++:
Sub aktar()
    Dim rs As Object, con$, strSQL$, tar1, tar2
    Dim s1Name, s2Name, s3Name As String

    Sheets("AKTAR").Range("2:" & Rows.Count).ClearContents
    Set rs = CreateObject("ADODB.Recordset")
   
    s1Name = Sheet1.Name
    s2Name = Sheet2.Name
    s3Name = Sheet3.Name

    tar1 = Replace(Format(Sheets("ANASAYFA").Range("H9").Value, "mm/dd/yyyy"), ".", "/")
    tar2 = Replace(Format(Sheets("ANASAYFA").Range("H10").Value, "mm/dd/yyyy"), ".", "/")

    con = "Provider=Microsoft.Ace.OleDb.12.0;Data Source=" & ThisWorkbook.FullName & _
          ";Extended Properties=""Excel 12.0;Hdr=YES"""

    strSQL = "SELECT * FROM " & _
             "( SELECT * FROM [" & s1Name & "$] UNION ALL " & _
             "  SELECT * FROM [" & s2Name & "$] UNION ALL " & _
             "  SELECT * FROM [" & s3Name & "$] ) WHERE TARİH >=#" & _
             tar1 & "# AND TARİH <=#" & tar2 & "# ORDER BY TARİH"

     rs.Open strSQL, con, 1, 1

    Sheets("AKTAR").Range("A2").CopyFromRecordset rs

    rs.Close
End Sub
 
Son düzenleme:

Ahmet Sami

Altın Üye
Katılım
10 Kasım 2006
Mesajlar
399
Excel Vers. ve Dili
microsoft office 2007-2010-2013-2019-2021
Altın Üyelik Bitiş Tarihi
06-01-2025
Dosyam ektedir. Sayın dost uyguladım ama yinede hata verdi.
 

Ekli dosyalar

Katılım
15 Mart 2005
Mesajlar
379
Excel Vers. ve Dili
Microsoft 365 En 64 Bit
Altın Üyelik Bitiş Tarihi
20-03-2024
Merhaba,

Sorun sayfa başlıklarının 2.satırdan başlamış olması.

Kodu revize ettim. Sizin göndermiş olduğunuz dosyada çalıştı.

C++:
Sub aktar()
    Dim rs As Object, con$, strSQL$, tar1, tar2
    Dim s1Name, s2Name, s3Name As String
    'Referance: Microsoft ActiveX data Object xxx Library

    Sheets("AKTAR").Range("2:" & Rows.Count).ClearContents
    Set rs = CreateObject("ADODB.Recordset")
    
    s1Name = "FİRMA ÖDEME"
    s2Name = "KİŞİ ÖDEME"
    s3Name = "GİDER"
    
 
    tar1 = Replace(Format(Sheets("ANASAYFA").Range("H9").Value, "mm/dd/yyyy"), ".", "/")
    tar2 = Replace(Format(Sheets("ANASAYFA").Range("H10").Value, "mm/dd/yyyy"), ".", "/")

    con = "Provider=Microsoft.Ace.OleDb.12.0;Data Source=" & ThisWorkbook.FullName & _
          ";Extended Properties=""Excel 12.0;Hdr=YES"""

    strSQL = "SELECT * FROM " & _
             "( SELECT * FROM [" & s1Name & "$A2:J] UNION ALL " & _
             "  SELECT * FROM [" & s2Name & "$A2:J] UNION ALL " & _
             "  SELECT * FROM [" & s3Name & "$A2:J] ) WHERE TARİH >=#" & _
             tar1 & "# AND TARİH <=#" & tar2 & "# ORDER BY TARİH"

   
    rs.Open strSQL, con, 1, 1

    Sheets("AKTAR").Range("A2").CopyFromRecordset rs

    rs.Close
    Set rs = Nothing
End Sub
 

Ahmet Sami

Altın Üye
Katılım
10 Kasım 2006
Mesajlar
399
Excel Vers. ve Dili
microsoft office 2007-2010-2013-2019-2021
Altın Üyelik Bitiş Tarihi
06-01-2025
Teşekkür ederim. Emeğinize elinize sağlık
 
Katılım
15 Mart 2005
Mesajlar
379
Excel Vers. ve Dili
Microsoft 365 En 64 Bit
Altın Üyelik Bitiş Tarihi
20-03-2024
Merhaba,

Ben kodda ufak bir değişiklik yaptım. Teşekkürü hak eden @veyselemre dir.

İyi çalışmalar.
 

Ahmet Sami

Altın Üye
Katılım
10 Kasım 2006
Mesajlar
399
Excel Vers. ve Dili
microsoft office 2007-2010-2013-2019-2021
Altın Üyelik Bitiş Tarihi
06-01-2025
Emeği geçen tüm üstadlarımıza teşekkür ederim.
Sayın dost gününüz hayır olsun,
Sizden bir istirhamım daha olacak aktarma işlemi tamam ama TL Dolar ve Euro sütunlarını aktarırken metin olarak aktardığı için AKTAR sayfasında toplam alamıyorum. Onu nasıl yapabilirim
 
Katılım
15 Mart 2005
Mesajlar
379
Excel Vers. ve Dili
Microsoft 365 En 64 Bit
Altın Üyelik Bitiş Tarihi
20-03-2024
Merhaba,

C++:
Sub aktar()
    Dim rs As Object, con$, strSQL$, tar1, tar2
    Dim s1Name, s2Name, s3Name As String
    Dim lRow As Long, col As Byte
    Dim sumRng
    'Referance: Microsoft ActiveX data Object xxx Library

    Sheets("AKTAR").Range("2:" & Rows.Count).ClearContents
    Set rs = CreateObject("ADODB.Recordset")
    
    s1Name = "FİRMA ÖDEME"
    s2Name = "KİŞİ ÖDEME"
    s3Name = "GİDER"
    Sheets("AKTAR").Cells.Font.Bold = False
    Sheets("AKTAR").Columns("G:I").NumberFormat = "#,##0.00"
 
    tar1 = Replace(Format(Sheets("ANASAYFA").Range("H9").Value, "mm/dd/yyyy"), ".", "/")
    tar2 = Replace(Format(Sheets("ANASAYFA").Range("H10").Value, "mm/dd/yyyy"), ".", "/")

    con = "Provider=Microsoft.Ace.OleDb.12.0;Data Source=" & ThisWorkbook.FullName & _
          ";Extended Properties=""Excel 12.0;Hdr=YES"""

    strSQL = "SELECT * FROM " & _
             "( SELECT * FROM [" & s1Name & "$A2:J] UNION ALL " & _
             "  SELECT * FROM [" & s2Name & "$A2:J] UNION ALL " & _
             "  SELECT * FROM [" & s3Name & "$A2:J] ) WHERE TARİH >=#" & _
             tar1 & "# AND TARİH <=#" & tar2 & "# ORDER BY TARİH"

  
    rs.Open strSQL, con, 1, 1

    Sheets("AKTAR").Range("A2").CopyFromRecordset rs
    lRow = Sheets("AKTAR").Cells(Rows.Count, 1).End(xlUp).Row
    
    For col = 7 To 9
        sumRng = Sheets("AKTAR").Range(Sheets("AKTAR").Cells(2, col), Sheets("AKTAR").Cells(lRow, col))
        Sheets("AKTAR").Cells(lRow + 1, col) = Application.WorksheetFunction.Sum(sumRng)
    Next col
    
    Sheets("AKTAR").Cells(lRow + 1, "F") = "Toplam"
    Sheets("AKTAR").Cells(lRow + 1, 1).EntireRow.Font.Bold = True

    rs.Close
    Set rs = Nothing
    MsgBox "Veriler AKTAR sayfasına aktarılmıştır..."
    
    Worksheets("AKTAR").Visible = True
    Worksheets("AKTAR").Activate
    Sheets("AKTAR").Range("A1").Select
    
End Sub
 

Ahmet Sami

Altın Üye
Katılım
10 Kasım 2006
Mesajlar
399
Excel Vers. ve Dili
microsoft office 2007-2010-2013-2019-2021
Altın Üyelik Bitiş Tarihi
06-01-2025
Üstadım yine metin hücresi olarak atıyor ve toplama yapmıyor. Ancak hücrenin içerisine girip çıkarsam toplama yapıyor.
 
Katılım
15 Mart 2005
Mesajlar
379
Excel Vers. ve Dili
Microsoft 365 En 64 Bit
Altın Üyelik Bitiş Tarihi
20-03-2024
Excel dosyanızı tekrar ekler misiniz.
 

Ahmet Sami

Altın Üye
Katılım
10 Kasım 2006
Mesajlar
399
Excel Vers. ve Dili
microsoft office 2007-2010-2013-2019-2021
Altın Üyelik Bitiş Tarihi
06-01-2025
Buyurun sayın dost. Kusurumuza bakmayın rahatsızdım bir kaç gün yattım size dönemedim.
 

Ekli dosyalar

Katılım
15 Mart 2005
Mesajlar
379
Excel Vers. ve Dili
Microsoft 365 En 64 Bit
Altın Üyelik Bitiş Tarihi
20-03-2024
Merhaba,

Göndermiş olduğunuz dosyaya kodu kopyaladım.
Sorunsuz çalıştı.

Dosya ektedir.
 

Ekli dosyalar

Ahmet Sami

Altın Üye
Katılım
10 Kasım 2006
Mesajlar
399
Excel Vers. ve Dili
microsoft office 2007-2010-2013-2019-2021
Altın Üyelik Bitiş Tarihi
06-01-2025
Çok teşekkür ederim. Hakkınızı helal edin sizi yordum sağolun
 
Üst