TOP

Çalışma sayfalarının toplanması

Tanım

Bazen yeni bir rapor veya birleştirilmiş veri dosyası oluşturmak için farklı Excel çalışma kitaplarındaki sayfaları birleştirmemiz gerekir. Böyle bir işlem, standart MS Excel araçları kullanılarak manuel olarak yapılabilir, ancak çok fazla zaman ve çaba gerektirebilir. Bu süreci nasıl otomatikleştirebileceğimizi ve raporlarla çalışmayı nasıl hızlandırabileceğimizi düşünelim.

Örneğin, çok sayıda çalışma kitabımız var Excel ve tüm çalışma kitaplarındaki çalışma sayfalarını tek bir dosyada toplamak istiyoruz. Bunu yapmak için tüm sayfaları toplamak istediğiniz çalışma kitabını açın ve aşağıdaki makro kodunu ekleyin.


Makro için VBA kodu

Tüm sayfaları toplamak istediğiniz Excel çalışma kitabı açıkken, Visual Basic Editor'yi (Alt+F11) açın, VBA (Insert - Module) modülünü ekleyin ve bu makro kodunu buraya kopyalayın:

Sub CombineWorkbooks()
    Dim FilesToOpen
    Dim x As Integer
    
    On Error GoTo ErrHandler
    Application.ScreenUpdating = False
    
    FilesToOpen = Application.GetOpenFilename _
                  (FileFilter:="Microsoft Excel Files (*.xls), *.xls", _
                   MultiSelect:=True, Title:="Files to Merge")
                   
    If TypeName(FilesToOpen) = "Boolean" Then
        MsgBox "Hiçbir dosya seçilmedi!"
        GoTo ExitHandler
    End If
    
    x = 1
    While x <= UBound(FilesToOpen)
        Workbooks.Open Filename:=FilesToOpen(x)
        Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
        x = x + 1
    Wend
    
    ExitHandler:
    Application.ScreenUpdating = True
    Exit Sub
    
    ErrHandler:
    MsgBox Err.Description
    Resume ExitHandler
    
End Sub

Bundan sonra Excel'e dönüp Tools - Macro - Macros (Alt+F8) menüsü üzerinden makromuzu çalıştırabilirsiniz. Sayfalarını mevcut çalışma kitabına eklemek istediğimiz bir veya daha fazla (Ctrl tuşunu basılı tutarak) dosyayı seçmeniz gereken bir iletişim kutusu görünecektir.

Farklı bir Excel dosya uzantısı kullanıyorsanız (örneğin, *.xlsx, *.xlsm, *.xlsb vb.), makromuzdaki dokuzuncu kod satırında uygun değişiklikleri yapmanız gerekecektir.

Konuyla ilgili makaleler: