Bırden fazla excelı tek excel altında bırlestırmek

saracevic

Altın Üye
Katılım
10 Temmuz 2012
Mesajlar
44
Excel Vers. ve Dili
Office 365 - English
Altın Üyelik Bitiş Tarihi
13.12.2024
Merhabalar,

Sistemden excel formatında dosyayı indiriyorum. Excel workbooklarının içinde bulunan dataları kopyala yapıştır işlemiyle tek bir dosya altında toplayıp gerekli düzenlemeler de bu iş sırası içinde bulunan kopyala-yapıştır işlemi sipariş sayısının çok fazla olduğu zamanlarda bize çok fazla vakit kaybettiriyor. Dosyaların içeriğinin(satır adedinin) düzensiz olması belirli hücre içindeki bilgileri makro kaydı yaparak almamızı da mümkün kılmıyor.

İnternette yaptığım araştırmalarda istediğim gibi olmasa da bu işlem için yazılmış VBA kodları buldum. Belirlenen bir dosya içinde bulunan excel workbooklarının içindeki datayı tek bir excel sayfasında toplayan bir kod. Ancak bulduğum kodlar sadece ilk iki satırı kopyalayıp gerisi kalan datayı almıyorlardı. VBA kodlama için gereken programlama dilini bilmediğim için üzerinde oynama yapamadım.

Ekte verdiğim“Birleştirilecek Workbook 1-2” isimli iki adet excel workbooku yine ekteki “Hazır Workbook” isimli örnek dosyada olduğu şekilde birleştirecek pratik bir yöntem mevcut mudur?

Şimdiden teşekkür ederim.

İyi Çalışmalar.
 

Ekli dosyalar

saracevic

Altın Üye
Katılım
10 Temmuz 2012
Mesajlar
44
Excel Vers. ve Dili
Office 365 - English
Altın Üyelik Bitiş Tarihi
13.12.2024
Bu konuda çok yardımcı olacak bir dosya var hemen paylaşıyorum
Merhabalar

Öncelikle ilgilinize çok teşekkürler,dosyanızı kontrol ettim ancak,excel dosyalarını ayrı ayrı sheet lere bölerek atıyor,acaba tek excel altında toplanabilir mi?
 

saracevic

Altın Üye
Katılım
10 Temmuz 2012
Mesajlar
44
Excel Vers. ve Dili
Office 365 - English
Altın Üyelik Bitiş Tarihi
13.12.2024
Merhabalar

Konu hakkında yardımcı olacak arkadaş var mı acaba?
 
Katılım
18 Aralık 2011
Mesajlar
89
Excel Vers. ve Dili
office 2010 tr
merhaba, ben aşağıdaki kodu kullanıyorum, aynı klasördeki bütün excel dosyalarını tek tek açıp tek dosyada alt alta kopyalıyor. (dosyaların aynı formatta olması gerekli)

Kod:
Sub basitbirlestir()
Dim bookList As Workbook
Dim mergeObj As Object, dirObj As Object, filesObj As Object, everyObj As Object
Application.ScreenUpdating = False
Set mergeObj = CreateObject("Scripting.FileSystemObject")
 
'aşağıda belirtilen yolu excel dosyalarınız olduğu yola göre uyarlayın
Set dirObj = mergeObj.Getfolder("D:\rapor\Haftalık Raporlar")
Set filesObj = dirObj.Files
For Each everyObj In filesObj
Set bookList = Workbooks.Open(everyObj)
 
'"A3" ifadesini dosyalarınızın kopyalanmasını istediğiniz ilk hücre olacak şekilde değiştirin.
'örneğin "A3:N" ifadesi her dosyada kopyalanacak verinin A sütununun 3. satırından başlayacağını ve N Sütununa kadar kopyalanacağını ifade eder
'Ayrıca "A" sutunundaki "A65536" ifadesini kopyalamaya başlayacağınız sutunun harfi ile değiştirin
Range("A3:N" & Range("A65536").End(xlUp).Row).Copy
ThisWorkbook.Worksheets(1).Activate
 'Aşağıdaki ifadeyi değiştirmeyin, yukarıdaki ile aynı şey değil, yapıştırdığı verinin çalışma sayfasındaki konumu
Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial
Application.CutCopyMode = False
bookList.Close
Next
End Sub
daha basit şekli ile aşağıdaki kod aynı klasördeki excel dosyalarının herbirinde A3 hücresinden başlayıp n sütununa kadar dolu olan her satırı kodu çalıştırdığınız çalışma sayfasına yapıştırır.

Kod:
Sub basitbirlestir()
Dim bookList As Workbook
Dim mergeObj As Object, dirObj As Object, filesObj As Object, everyObj As Object
Application.ScreenUpdating = False
Set mergeObj = CreateObject("Scripting.FileSystemObject")
 
Set dirObj = mergeObj.Getfolder("D:\rapor\Haftalık Raporlar")
Set filesObj = dirObj.Files
For Each everyObj In filesObj
Set bookList = Workbooks.Open(everyObj)
 
Range("A3:n" & Range("A65536").End(xlUp).Row).Copy
ThisWorkbook.Worksheets(1).Activate
 
Range("A65536").End(xlUp).Offset(1, 0).PasteSpecial
Application.CutCopyMode = False
bookList.Close
Next
End Sub
 
Üst