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