Sayfalardaki Verileri Birleştirmek

Katılım
10 Ekim 2011
Mesajlar
128
Excel Vers. ve Dili
Excel 2007
İyi Akşamlar,
Ekteki dosyayla günlerdir uğraşıyorum. Sayfalardaki verileri birleştirmeyle ilgili forumlardaki Vba kodlarını falan hep denedim ama bir türlü başaramadım. Ekteki dosyada SYF1-SYF2-SYF3-SYF4-SYF5 isimli 5 dosya var. bu dosyalar maksimum 31 tane olacak. Çünkü günlük kasa olacağı için ay sonuna kadar olacak. Bu sayfalardaki verileri rapor sayfasına aktarmak istiyorum. Yalnız her sayfada TL,USD ve EURO ayrı ayrı ama Rapor sayfasında tek olacak. Sayfalardaki satır sayıları değişmeyecek sabit kalacak. Lütfen arkadaşlar Allah rızası için yardımcı olun. Günlerdir uğraşıyorum ama bir türlü başaramadım.
 

Ekli dosyalar

Katılım
28 Ekim 2009
Mesajlar
101
Excel Vers. ve Dili
Excel Vers. ve Dili Ofis 2013 TR 32 Bit Türkçe
Altın Üyelik Bitiş Tarihi
23.10.2019
Merhaba Conqueror20,
Rapor sayfasında TL,USD ve EURO tek olacak diyorsun.Diğerleri gibi sayfa bölünmeyecek,fakat TL,USD ve EURO'dan 3'er 5'er adetmi olacak.Yani SYF1'den başlayarak bütün değerler Rapor sayfasına atacakmı?31 sayfada toplam 62 veri varsa, Rapor sayfasındada bu verilerin aynılarımı olacak?
Bilgi verirsen yarına yardımcı olabilirim.

İyi geceler!
 
Katılım
10 Ekim 2011
Mesajlar
128
Excel Vers. ve Dili
Excel 2007
Sayın Semay77,
Rapor sayfasında TL,Usd,Euro olarak ayırmasına gerek yok. Karışık olarak alabilir. Verileri alırken SYF1 den başlayarak tüm sayfalardaki verileri alacak. Mesela SYF1 de 10 adet TL sütununda veri var. 5 adet USD sütununda veri var, SYF2 de ise 5 adet Euro sütununda veri var diyelim. Rapor sayfasına alt alta 20 satır veri alacak
 
Katılım
10 Ekim 2011
Mesajlar
128
Excel Vers. ve Dili
Excel 2007
Sayın üstadlarım,
Yardımlarınızla excel dosyası içerisindeki sayfaları "rapor" sayfasında birleştirme sorunum çözüldü. Ekte aynı özelliklerde 4 adet excel dosyası var. Bu excel dosyalarındaki sadece "rapor" sayfalarındaki verileri nasıl yeni bir excel dosyasında toplayabilirim yardımcı olur musunuz
 

Ekli dosyalar

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Dosyanız ektedir.:cool:

Kod:
Sub rapor59()
Dim sat As Long, i As Long, dosya As String
Dim conn As Object, rs As Object, klasor As String
Sheets("RAPOR").Select
Range("A3:K" & Rows.Count).ClearContents
Set conn = CreateObject("ADODB.CONNECTION")
Set rs = CreateObject("ADODB.RECORDSET")
klasor = "RAPORLAR"
yol = ThisWorkbook.Path & "\" & klasor & "\"
dosya = Dir(yol & "*.xls")
Application.ScreenUpdating = False
Do While dosya <> ""
    conn.Open "provider=microsoft.jet.oledb.4.0;data source=" & yol & dosya & ";extended properties=""excel 8.0;hdr=no;imex=1"""
    rs.Open "select * from [Rapor$A3:K" & Rows.Count & "];", conn, 1, 1
    sata = Cells(Rows.Count, "A").End(xlUp).Row + 1
    satg = Cells(Rows.Count, "G").End(xlUp).Row + 1
    If sata > satg Then
        sat = sata
        Else: sat = satg
    End If
    If rs.RecordCount > 0 Then Range("A" & sat).CopyFromRecordset rs
    rs.Close: conn.Close
    dosya = Dir
Loop
Set rs = Nothing
Set conn = Nothing
Application.ScreenUpdating = True
MsgBox "aktarım bitmiştir." & vbLf & "evrengizlen@hotmail.com", vbInformation
End Sub
 

Ekli dosyalar

Katılım
10 Ekim 2011
Mesajlar
128
Excel Vers. ve Dili
Excel 2007
yardımınız için teşekkürler. Gelen ödemedeki veri miktarı ile giden ödemedeki veri miktarı eşit olmadığı için arada boşluklar kalmış. Bunları nasıl önleyebiliriz.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
yardımınız için teşekkürler. Gelen ödemedeki veri miktarı ile giden ödemedeki veri miktarı eşit olmadığı için arada boşluklar kalmış. Bunları nasıl önleyebiliriz.
Dosyanız ektedir.:cool:
Kod:
Sub rapor59()
Dim sat As Long, i As Long, dosya As String
Dim conn As Object, rs As Object, klasor As String
Sheets("RAPOR").Select
Range("A3:K" & Rows.Count).ClearContents
Set conn = CreateObject("ADODB.CONNECTION")
Set rs = CreateObject("ADODB.RECORDSET")
klasor = "RAPORLAR"
yol = ThisWorkbook.Path & "\" & klasor & "\"
dosya = Dir(yol & "*.xls")
Application.ScreenUpdating = False
conn.Open "provider=microsoft.jet.oledb.4.0;data source=" & yol & dosya & ";extended properties=""excel 8.0;hdr=no;imex=1"""
Do While dosya <> ""
    rs.Open "select * from [Rapor$A3:E" & Rows.Count & "];", conn, 1, 1
    sat = Cells(Rows.Count, "A").End(xlUp).Row + 1
    If rs.RecordCount > 0 Then Range("A" & sat).CopyFromRecordset rs
    rs.Close
    rs.Open "select * from [Rapor$G3:K" & Rows.Count & "];", conn, 1, 1
    sat = Cells(Rows.Count, "G").End(xlUp).Row + 1
    If rs.RecordCount > 0 Then Range("G" & sat).CopyFromRecordset rs
    rs.Close
    dosya = Dir
Loop
conn.Close
Set rs = Nothing
Set conn = Nothing
Application.ScreenUpdating = True
MsgBox "aktarım bitmiştir." & vbLf & "evrengizlen@hotmail.com", vbInformation
End Sub
 

Ekli dosyalar

Katılım
10 Ekim 2011
Mesajlar
128
Excel Vers. ve Dili
Excel 2007
Sayın Orion1,
Sanırım bu hazırladığınız formül sadece excel 2003 te çalışıyor. Ben birleştirilen raporları pivot tabloda düzenlemek istiyorum ama dilimleyici eklememe izin vermiyor. Formatı excel 2007 e çeviriyorum bu sefer kodlar hata veriyor. Bu konu hakkında nasıl bir yol izlicem.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Sayın Orion1,
Sanırım bu hazırladığınız formül sadece excel 2003 te çalışıyor. Ben birleştirilen raporları pivot tabloda düzenlemek istiyorum ama dilimleyici eklememe izin vermiyor. Formatı excel 2007 e çeviriyorum bu sefer kodlar hata veriyor. Bu konu hakkında nasıl bir yol izlicem.
Verileri aldığımız dosyalarda 2007 mi?
ben rapor59 dosyasını 2007 formatı yaptım.raporlar içindeki dosyalarıda excel 2003 yaptım.Dosyanız ektedir.:cool:
Kod:
Sub rapor59()
Dim sat As Long, i As Long, dosya As String
Dim conn As Object, rs As Object, klasor As String
Sheets("RAPOR").Select
Range("A3:K" & Rows.Count).ClearContents
Set conn = CreateObject("ADODB.CONNECTION")
Set rs = CreateObject("ADODB.RECORDSET")
klasor = "RAPORLAR"
yol = ThisWorkbook.Path & "\" & klasor & "\"
dosya = Dir(yol & "*.xls")
Application.ScreenUpdating = False
conn.Open "provider=microsoft.ACE.oledb.12.0;data source=" & yol & dosya & ";extended properties=""excel 12.0;hdr=no;imex=1"""
Do While dosya <> ""
    rs.Open "select * from [Rapor$A3:E65536];", conn, 1, 1
    sat = Cells(Rows.Count, "A").End(xlUp).Row + 1
    If rs.RecordCount > 0 Then Range("A" & sat).CopyFromRecordset rs
    rs.Close
    rs.Open "select * from [Rapor$G3:K65536];", conn, 1, 1
    sat = Cells(Rows.Count, "G").End(xlUp).Row + 1
    If rs.RecordCount > 0 Then Range("G" & sat).CopyFromRecordset rs
    rs.Close
    dosya = Dir
Loop
conn.Close
Set rs = Nothing
Set conn = Nothing
Application.ScreenUpdating = True
MsgBox "aktarım bitmiştir." & vbLf & "evrengizlen@hotmail.com", vbInformation
End Sub
 

Ekli dosyalar

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
raporların içindeki dosyayıda 2007 yapmak için ne yapmam lazım
dosyanız ektedir.:cool:
Kod:
Sub rapor59()
Dim sat As Long, i As Long, dosya As String
Dim conn As Object, rs As Object, klasor As String
Sheets("RAPOR").Select
Range("A3:K" & Rows.Count).ClearContents
Set conn = CreateObject("ADODB.CONNECTION")
Set rs = CreateObject("ADODB.RECORDSET")
klasor = "RAPORLAR"
yol = ThisWorkbook.Path & "\" & klasor & "\"
dosya = Dir(yol & "*.xlsm")
Application.ScreenUpdating = False
Do While dosya <> ""
    conn.Open "provider=microsoft.ACE.oledb.12.0;data source=" & yol & dosya & ";extended properties=""excel 12.0;hdr=no;imex=1"""
    rs.Open "select * from [Rapor$A3:E" & Rows.Count & "];", conn, 1, 1
    sat = Cells(Rows.Count, "A").End(xlUp).Row + 1
    If rs.RecordCount > 0 Then Range("A" & sat).CopyFromRecordset rs
    rs.Close
    rs.Open "select * from [Rapor$G3:K" & Rows.Count & "];", conn, 1, 1
    sat = Cells(Rows.Count, "G").End(xlUp).Row + 1
    If rs.RecordCount > 0 Then Range("G" & sat).CopyFromRecordset rs
    rs.Close
    conn.Close
    dosya = Dir
Loop
Set rs = Nothing
Set conn = Nothing
Application.ScreenUpdating = True
MsgBox "aktarım bitmiştir." & vbLf & "evrengizlen@hotmail.com", vbInformation
End Sub
 

Ekli dosyalar

Katılım
10 Ekim 2011
Mesajlar
128
Excel Vers. ve Dili
Excel 2007
Sayın Orion1,
raporlar klasöründe Kitap_1, kitap_2, kitap_3,kitap_4 e sırasıyla veri girdim ve ne yazıkki sadece kitap_1 e girdiğim veriyi 4 defa aktardı ama diğer dosyalardaki verileri almadı.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Sayın Orion1,
raporlar klasöründe Kitap_1, kitap_2, kitap_3,kitap_4 e sırasıyla veri girdim ve ne yazıkki sadece kitap_1 e girdiğim veriyi 4 defa aktardı ama diğer dosyalardaki verileri almadı.
sadece xlsm uzantılı dosyalardan veri alıyor.(makrolu 2007 dosyalarını alıyor)
Benim yolladığım dosyalarda çalışıyordu.:cool:
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Sayın Orion1,
raporlar klasöründe Kitap_1, kitap_2, kitap_3,kitap_4 e sırasıyla veri girdim ve ne yazıkki sadece kitap_1 e girdiğim veriyi 4 defa aktardı ama diğer dosyalardaki verileri almadı.
15 nolu mesajda dosyayı güncelledim.Şimdi alıyor.:D
 
Katılım
10 Ekim 2011
Mesajlar
128
Excel Vers. ve Dili
Excel 2007
Teşekkürler Sayın Orion1,
Sizede çok zahmet verdim. Hakkınızı helal edin
 
Üst