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.

Similar Posts

12 Comments

  1. 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.

    1. 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.

      1. tekrar çok teşekkür ederim. ellerinize sağlık. sabırsızlıkla bekliyorum.
        saygılar…

  2. 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.

    1. Sayfa sınırı yoktur. Parçalanamayan dosyanız bozuk olabilir.

  3. 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.

  4. 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ı?

    1. Merhaba, veri menüsünden dosyadan, seçeneği altında klasörden al seçeneği ile aynı tipteki excelleri birleştirebilirsiniz.

  5. Ö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.

  6. 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?

  7. 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.

  8. 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.

Oğuz için bir yanıt yazın Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.