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, birçok çalışma kitabımız Excel var ve bunu yapmak istiyoruz çalışma sayfalarının toplanması tüm kitaplardan tek bir dosyaya. 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 Düzenleyicisi'yi (Alt+F11) açın, modül ekle VBA ( Insert - Module ) ve bu makro kodunu buraya kopyalayın:

Sub CombineWorkbooks()
    'moonexcel.com.ua
    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 menü üzerinden makromuzu çalıştırabilirsiniz. Tools - Macro - Macros (Alt+F8) . 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.), makromuzun kodunun dokuzuncu satırında uygun değişiklikleri yapmanız gerekecektir.

Konuyla ilgili makaleler: