Excel’de Dosya Parçalama(Split Excel)
Eğer şuan bu sayfaya gelmişseniz, aradığınızı bulmak üzereseniz 🙂
Büyük bir excel dosyasını aşağıdaki kodları kullanarak kriterlere göre bölebilirsiniz.
Sayfanın altında program yer almakta olup, detaylı açıklama videodadır.
Faydalı olması dileğiyle…
Private Sub CommandButton1_Click()
'bymmb.com
listesonu = Cells(Rows.Count, "A").End(xlUp).Row
sonsutun = ActiveSheet.UsedRange.SpecialCells(xlLastCell).Column
sonsutunismi = Split(Cells(1, sonsutun).Address, "$")(1)
alansonu = sonsutunismi & sonsutun
listem = Range("A1" & ":" & alansonu)
kritersec = Application.InputBox("Hangi sütuna göre bölünecek ise o sütunun sıra sayısını girin? ", "Parçala/Böl/Yönet", Type:=1)
Kriter = Cells(1, kritersec).Value
hangikolon = Split(Cells(1, kritersec).Address, "$")(1)
If kritersec = 0 Then Exit Sub
With Application.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
.Show
If .SelectedItems.Count > 0 Then
uzanti = .SelectedItems(1)
End If
End With
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Columns(hangikolon & ":" & hangikolon).Select
Selection.Copy
Columns("XFD:XFD").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveSheet.Range("$XFD$1:$XFD$100000").RemoveDuplicates Columns:=1, Header:=xlYes
Cells(1, 1).Select
sonkriter = Cells(Rows.Count, "XFD").End(xlUp).Row
For i = 2 To sonkriter
dosyaadi = Cells(i, 16384)
Selection.AutoFilter
ActiveSheet.Range("A1:" & sonsutunismi & 1).AutoFilter Field:=kritersec, Criteria1:=dosyaadi
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Range("A1").Select
Workbooks.Add
ActiveSheet.Paste
ActiveSheet.Columns("A:XFD").EntireColumn.AutoFit
ActiveSheet.Cells(1, 1).Select
ActiveWorkbook.SaveAs Filename:=uzanti & dosyaadi & "-" & Format(Now, "dd.mm.yyyy") & ".xlsx", _
FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
ActiveWindow.Close
If ActiveSheet.AutoFilterMode = "True" Then
ActiveSheet.AutoFilterMode = "False"
End If
Next i
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Range("XFD1:XFD100000").Clear
OutPut = MsgBox("Bölme İşlemi Başarıyla Tamamlanmıştır!", vbOKOnly, "BYMMB.com")
End Sub
Dosyayı indirmek için tıklayın.

Merhaba,
Öncelikle Excel’de Dosya Parçalama(Split Excel) konunuz için çok teşekkür ediyorum. İnanılmaz işime yarıyor.
Her seferinde de sizi saygı ile anıyorum. Teşekkür ederim tekrar.
Sorum şu. Parçalamak istediğimiz excel dokümanında birden fazla sheet var ise nası bir yol izlemeliyiz.
Örneğin elimdeki excel dokümanında 4 sheet var. her sheetinde 100 okulun sınıf sınıf sınav sonuçları var. bir sheetde 4. sınıflar sınav sonuçları, diğerinde 5. sınıf, diğerinde 6. sınıf …. şeklinde ama okul sütunlarında ortak isimler. x okul için 4 sheeti de içeren excellere parçalayabilir miyiz?
(Umarım anlatabildim 🙂 şimdiden teşekkürler.
Yapılabilir. Tabi bu kodu daha da uzatır.
Şu sıralar online dashboard eğitimi hazırladığım için biraz yoğunum ancak ilk fırsatta öyle bir ekleme yapıp siteye ekleyeceğim.
Size de ayrıca mail atarım.
tekrar çok teşekkür ederim. ellerinize sağlık. sabırsızlıkla bekliyorum.
saygılar…
Merhabalar,
Benim exel dosyamın boyutu 95mb eklemiş olduğunuz split sayesinde işlemi yapabiliyorum ama 32. sayfadan sonra parçalama yapılamıyor donuyor.
Sayfa sınırı yoktur. Parçalanamayan dosyanız bozuk olabilir.
Yaptığım işin neredeyse tamamını otomatize etmişken en angarya kısmı olan bu bölümde takılıyordu. Emeklerinize sağlık.
Dosya gerçekten işimi gördü çok teşekkürler, bu parçalı dosyaları tekrar birleştirme işlemi yapılabiliyor mu?
Ben bayilerimden topladığım aynı başlıklı excel leri alt alta birleştirmek istiyorum, bunun için bir öneriniz var mı?
Merhaba, veri menüsünden dosyadan, seçeneği altında klasörden al seçeneği ile aynı tipteki excelleri birleştirebilirsiniz.
Öncelikle eline sağlık excel ile çalışanlar için çok güzel bir makro. Başlık kısmında biraz zorlandım başlık olarak 2 veya 3 satırın her dosyada tekrarlanmasını istiyorsak sayfa verisini alırken A2 ve A3 den başlatıyorum ama başlığı her dosyada sadece 1 satır alıyor ben başlık olarak 2 veya 3 satır olmasını istersem hangi koddan değişiklik yapmam gerekiyor. Teşekkür ederim kolay gelsin.
Teşekkürler. Çok işime yaradı örnek dosya.
Lakin şöyle bir sorun var kaydedilecek yeri seçince (aynı isimde klasör olsa bile) bir üst klasöre kaydediyor dosyaları. Bu konuda bir öneriniz olur mu?
Hocam Merhabalar,
Columns(“XFD:XFD”).Select satırı typemismatch hatası veriyor. Birde bu kodu şu şekilde nasıl çalıştırabiliriz örnek olarak,
15.000 adet inek küpe numarası olan bir excel listem var ve birde müşterilerimin sipariş sayılarının olduğu bir excel listem var. İstiyorum ki örneğin ilk 705 küpe numarasını alsın konşimento 1 olarak yeni bir sayfaya kaydetsin. 706-1200 arasını konşimento 2 olarak kaydettireyim. Bunu yapabilmemiz mümkün müdür? Yapabilirseniz yada küçük bir ipucu verirseniz çok sevinirim. İyi çalışmalar dilerim.
Emeğinize sağlık hocam süper bir çalışma olmuş, çok uzun sürecek bir işimi kısa sürede hallettim sayenizde. Birleştirilmiş sutunlar ile alakalı sorun yaşadım ama çözümü var mı bilmiyorum.