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.