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