Farklı xls dosyalarını tek bir shette alt alta birleştirme

Katılım
6 Temmuz 2011
Mesajlar
127
Excel Vers. ve Dili
2007 English
Merhaba Değerli arkadaşlar,

Farklı xls dosyalarınında yer alan sheetleri farklı bir excel kitabında tek bir sheette alt alta birleştirebilirmiyiz.
Formda çok aradım ancak genellikle farklı sayfaları tek bir çalışma kitabında ayrı ayrı sheetler şeklinde çözümler var.Dolayısıyla bu ihtiyacımı görmüyor

Bu konuda yardımcı olabilirmisiniz .

Tşk ler
 
Katılım
6 Temmuz 2011
Mesajlar
127
Excel Vers. ve Dili
2007 English
Merhaba Arkadaşlar
Bu konuda mümkünse yardımcı olabilirmisiniz acaba .
Tşk ler
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,454
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Çözüm için örnek dosya ekleyerek nasıl bir birleştirme istediğinizi dosyanızın içinde görsel olarak bizlere izah etmelisiniz.
 
Katılım
6 Temmuz 2011
Mesajlar
127
Excel Vers. ve Dili
2007 English
Korhan Bey Merhaba,

Ekte Örnek dosyaları gönderiyorum.
Kısaca yapmak istediğim şey şu şekilde,
macroya göstereceğim klasör içerisindeki bir den çok excel çalışma kitapları içerisindeki ilk sheetteki A1 satırından başlayarak veri olan tüm satırları komple alacak , hepsinini yeni bir excel çalışma kitabında alt alta yazacak.

Ekte Birleştirilmiş dosyada daha rahat anlaşılacaktır diye düşünüyorum.

Tşk ler iyi çalışmalar
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,454
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Aşağıdaki kodu boş bir excel kitabına uygulayın.

Kodu çalıştırdığınızda seçtiğiniz klasör altında yeni bir excel sayfası oluşturulur ve içine klasör altındaki dosyaların ilk sayfalarındaki veriler alt alta aktarılır.

Yeni excel dosyası "Dosya_gg_aa_yyyy_ss_dd_nn" ismi ile kayıt edilir. Kırmızı bölüm günün tarihi ve saatidir.

Kod:
Option Explicit

Sub DOSYALARDAN_VERİ_AL()
    Dim K1 As Workbook, K2 As Workbook
    Dim K3 As Workbook, S1 As Worksheet
    Dim X As Integer, Satır As Integer, Son_Satır As Long
    Dim Klasör As Object, Kaynak_Klasör As String, Dosya As String
   
    Set Klasör = CreateObject("Shell.Application").BrowseForFolder(0, "Kaynak dosyaları içeren klasörü seçiniz...", 50, &H0)
   
    If Klasör = "Masaüstü" Or Klasör = "Desktop" Then
        Kaynak_Klasör = Environ("UserProfile") & "\Desktop\"
    ElseIf Not Klasör Is Nothing Then
        Kaynak_Klasör = Klasör.Items.Item.Path
    Else
        MsgBox "İşleme devam edebilmek için klasör seçimi yapmalısınız!" & Chr(10) & _
        "İşleminiz iptal edilmiştir.", vbCritical
        Exit Sub
    End If
   
    On Error Resume Next
   
    Set K1 = ThisWorkbook
    Set K2 = Workbooks.Add(1)
    Dosya = Dir(Kaynak_Klasör & "\*.xls")
    Satır = 2
   
    Application.ScreenUpdating = False
   
    Do
        If Dosya <> "" And Dosya <> K1.Name And InStr(1, Dosya, "Dosya") = 0 Then
            DoEvents
            Application.DisplayAlerts = False
            Set K3 = Workbooks.Open(Kaynak_Klasör & "\" & Dosya, False, False)
            Application.DisplayAlerts = True
            Set S1 = K3.Sheets(1)
           
            Son_Satır = S1.Cells(Rows.Count, 1).End(3).Row
            S1.Range("A2:AA" & Son_Satır).Copy _
            K2.Sheets("Sayfa1").Range("A" & Satır)
            Satır = K2.Sheets("Sayfa1").Cells(Rows.Count, 1).End(3).Row + 2
           
            K3.Close True
            Dosya = Dir
        Else
            Dosya = Dir
        End If
    Loop While Dosya <> ""
   
    K2.Sheets("Sayfa1").Cells.EntireColumn.AutoFit
    K2.SaveAs (Kaynak_Klasör & "\Dosya_" & Format(Now, "dd_mm_yyyy_hh_mm_ss"))
    K2.Close True
   
    Set K1 = Nothing
    Set K2 = Nothing
    Set K3 = Nothing
   
    Application.ScreenUpdating = True
  
    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Katılım
6 Temmuz 2011
Mesajlar
127
Excel Vers. ve Dili
2007 English
Korhan Bey günaydın,
Öncelikle elinize sağlık çok tşk ler.Ancak dediğinizi yaptım şu şekilde bazı sorunlar var;
1- Dosya_21_11_2011_09_06_24.xlsx şeklinde yeni bir çalışma kitabı oluşturuyor ancak dosyanın içi boş.Hiçbir veri yok.Bir çok kez denedim ama olmadı

2-"İşleminiz tamamlanmış" dır diyor ancak oluşturduğu yeni dosyayı işlemin yapıldığı klasörün içerisine oluşturmuyor My Documents in içerisine herhangibir yere atıyor.

İyi çalışmalar
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,454
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

"Olmadı" ifadenizde sonra sizin eklediğiniz dosyaları indirdim ve masaüstünde bir klasör içine çıkarttım.

Daha sonra boş bir excel sayfası açtım. Boş bir modül ekleyerek önerdiğim kodu uyguladım ve kodu çalıştırdım. Benden klasör seçmemi istedi. Sizin dosyalarınızı çıkarttığım klasörü seçtim ve tüm bilgiler yeni excel dosyasına aktardı. Fakat kayıt yerini benim belirttiğim yere yapmadı. Bunun sebebide yolu belirtmeyi unutmuşum.

Üstteki mesajımdaki kodu yeniledim. Denermisiniz.

Not: Ben son haliyle olumlu sonuç aldım.
 
Katılım
6 Temmuz 2011
Mesajlar
127
Excel Vers. ve Dili
2007 English
Korhan Bey,
Kusura bakmayın lütfen, sizi uğraştırıyorum ama muhtemelen ben basit bir hata yüzünden birleştirilmiş dosyayı göremiyorum.Yeni kodda dosyayı ilgili klasörün içerisine atıyor bu düzelmiş ama diğerini ben yapamadım herhalde.

Ekte ekran görüntüsünü gönderdim.
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,454
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Sorun sizin İngilizce versiyon kullanmanızdan kaynaklanıyor. Ben Türkçe versiyon kullandığım için sayfa isimlerini ona göre yazmıştım.

İngilizce versiyon için kodun içindeki aşağıdaki satırları;

Kod:
            K2.Sheets("Sayfa1").Range("A" & Satır)
            Satır = K2.Sheets("Sayfa1").Cells(Rows.Count, 1).End(3).Row + 2
Bununla değiştirin.

Kod:
            K2.Sheets("[COLOR=red]Sheet1[/COLOR]").Range("A" & Satır)
            Satır = K2.Sheets("[COLOR=red]Sheet1[/COLOR]").Cells(Rows.Count, 1).End(3).Row + 2
 
Katılım
6 Temmuz 2011
Mesajlar
127
Excel Vers. ve Dili
2007 English
Korhan Bey çok tşk ler, valla süper oldu.

Elinize aklınıza sağlık
İyi çalışmalar
 
Katılım
25 Ağustos 2010
Mesajlar
73
Excel Vers. ve Dili
MS Office 2007
Altın Üyelik Bitiş Tarihi
21/12/2022
Merhaba Hocam,

Verdiğiniz bilgi için çok teşekkür ederim. Ben ekstra bilgi isteyecektim.

Şimdi farklı dosyalardaki bilgileri alt alta yazabiliyorum bu örnekle ama aynı dosya içindeki farklı sayfalardaki veriyi toplayamıyorum. Şöyle ki elimde bir excel dosyası var. 1'den 30'a kadar sayfalar var. Bunu alt alta görmem mümkün mü bu kodlarda değişiklik yaparak?

Teşekkür ederim.
 
Katılım
4 Nisan 2011
Mesajlar
209
Excel Vers. ve Dili
2010 İNGİLİZCE
Farkı sayfaları tek sayfada toplama

Korhan bey,

Yapmıs olduğunuz farklı xls dosyasını tek bir sheet birlestirme paylasımınız cok güzel tebrik ediyorum,burda sunu sormak isterim okuduğu sayfa tek sheet okuyor ve yazıyor okuduğu ilk sheetten sonraki sheetleri okuyup onlarında yazılması nasıl yapılır yardımlarınız icin simdiden tesekkür ederim.
 
Katılım
4 Nisan 2011
Mesajlar
209
Excel Vers. ve Dili
2010 İNGİLİZCE
okuyan sheetin yanlarındaki farklı sheetlerinde okunup yazdırılması hangi kod ile yapılıyor acaba. !!
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,454
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Veri alınacak sayfalar birden fazla ise sayfaları döngüye alarak aktarım işlemini yapabilirsiniz.
 
Katılım
5 Şubat 2012
Mesajlar
2
Excel Vers. ve Dili
2010 professional türkçe
biraz daha karışık bir soru

Herkese merhabalar...

Bugün akşama kadar yetiştirmem gereken önemli bir iş var ve bunu yapamıyorum.

Elimde 15 e yakın excel dosyası var ve bunların herbiri 10 sayfadan oluşuyor. bu 10 sayfanın herbirinde kopyalanacak dosyalar var. Bu dosyalardaki bazı verileri (her sayfada ayrı ayrı) kopyalayıp tek bir sayfada birleştirmem gerekir teker teker yapmaya kalkışsam akşama yetişmeyecek çünkü bayağı fazla ....

ekte örnek var. Bunun gibi hep sayfa sayısı çok olanını ve dosyaların çok olduğunu varsayınız.. burada kırmızı ve k.rengi olan yerler kopyalanıp bir sayfada birleştirilecek

şimdiden teşekkürler.
 

Ekli dosyalar

Katılım
4 Nisan 2011
Mesajlar
209
Excel Vers. ve Dili
2010 İNGİLİZCE
korhan bey 1 den fazla döngüyü nasıl yapabilir örnek vermenizi rica ederiz,
 
Katılım
20 Mayıs 2013
Mesajlar
46
Excel Vers. ve Dili
Office 2010
Korhan Bey, kod için teşekkürler.

Yanlız bende şöyle bir sorun yaşanıyor.. Bahsettiğiniz gibi kod için bir modül (buton) ekledim, kod atadım ve dosyayı makro olarak birleştirmek istediğim dosyaların olduğu klasöre kopyaladım.

birleştirme için butona tıkladığımda, hangi klasöridekileri birleştirmem istediğimi soruyor ve klasörü seçip tamam diyorum. Daha sonra altta yeni sayfalar hızlıca açılıp kapanıyor ve Dosya_gg_aa_yyyy_ss_dd_nn şeklinde sorunsuzca dosya oluşuyor. ANCAK dosyanın için boşa..

hiçbir sayfa eklenmiyor. nerde hata yapıyorum ya da sorun ne ..
Yardımcı olabilir misiniz.

İyi çalışmalar..

(office 2010 kullanıyorum)


edit:
kodlarda bulunan
Kod:
Set K1 = ThisWorkbook
    Set K2 = Workbooks.Add(1)
[COLOR="Red"]    Dosya = Dir(Kaynak_Klasör & "\*.xls")[/COLOR]
kırmızı ile işaretli bölümü
Kod:
    Dosya = Dir(Kaynak_Klasör & "\*.xlsx")
şeklinde değiştirdim. Bu sefer dosyaların hepsini tek sayfaya alt alt ekleyerek oldu..

bu işlemini aynı dosya altında ayrı sayfalara eklemek mümkün değil mi ?
 
Son düzenleme:
Katılım
5 Mart 2014
Mesajlar
2
Excel Vers. ve Dili
2010 TR
epey geçmiş ama umarım cevap veren olur!!!
peki 1. sayfaları değilde örn tüm belgelerdeki 8. sayfaları almak isteseydik nasıl bir değişiklik yapmamız gerekirdi?
 
Katılım
25 Mart 2008
Mesajlar
11
Excel Vers. ve Dili
excel 2003
Excel de sayfaları birleştirme

Merhaba benim sorunum bir çok deneme yapmama rağmen birleştirme işleminde sayısal verileri alıp alfabetik verileri almaması. Veri türünü değiştirmeme rağmen sonuç alamadım. Yardımcı olursanız sevinirim
 
Katılım
4 Mart 2014
Mesajlar
5
Excel Vers. ve Dili
2010 Türkçe
Merhabalar,
Ben de benzer bir istek yapabilir miyim,
Farklı lokasyonlardan 10 adet haftalık veriler toplayıp. Bu verileri daha sonrasında birleştirip rapor hazırlamak istiyorum. Örnegin,
Lokasyonlardan istediğim bilgiler aynı formatta Dosya ismi 20_Hafta_001.xls, 20_Hafta_002.xls ...20_Hafta_010.xls şeklinde olacak. Birde bunları birleştireceğim adı da toplu_rapor.xls dosyası olacak. Buraya kadar olan kısım baştaki örneğe benziyor, ancak benim istediğim şöyle, oluşturduğum dizin içerisinde 20_hafta dosyaları,21 Hafta dosyaları, haftalar arttıkça devam edecek, ben bunları toplu_rapor.xls dosyasında farklı sayfalarda birleştirmek istiyorum. Sayfa ismim 20.Hafta olsun, 21.Hafta olsun. Acaba anlatabildim mi?
 
Üst