Bu yazımızda, çalışma kitabındaki tüm sayfalardaki verileri yeni bir sayfaya kopyalamak için bir makro oluşturacağız.
Bu örnek için ham veriler, farklı sayfalardaki farklı departmanlardan gelen çalışan ayrıntılarından oluşur. Çalışan ayrıntılarını tek bir sayfada birleştirmek istiyoruz.
Verilerin konsolidasyonu için “CopyRangeFromMultipleSheets” makrosu oluşturduk. Bu makro “Consolide data” butonu tıklanarak çalıştırılabilir.
Makro, yeni bir çalışma sayfası oluşturacak ve tüm çalışma sayfalarından birleştirilmiş verileri ekleyecektir.
Kod açıklaması
"Ana" sayfanın var olup olmadığını kontrol etmek için tüm sayfalar arasında 'döngü'.
ThisWorkbook.Worksheets'teki Her Kaynak İçin
Source.Name = "Usta" ise
MsgBox "Ana sayfa zaten var"
Alt Çıkış
Bitir
Sonraki
Yukarıdaki kod, çalışma kitabında “Master” sayfasının olup olmadığını kontrol etmek için kullanılır. Çalışma kitabında “Master” sayfası varsa, kod çıkar ve bir hata mesajı görüntülenir.
Source.Range("A1").SpecialCells(xlSonHücre).Satır
Sayfadaki son hücrenin satır numarasını almak için yukarıdaki kod kullanılır.
Source.Range("A1", Range("A1").SpecialCells(xlLastCell)).Copy Destination.Range("A" & DestLastRow)
Belirtilen aralığı tanımlanan hücreye kopyalamak için yukarıdaki kod kullanılır.
Lütfen kod için aşağıdan takip edin
Sub CopyRangeFromMultipleSheets() 'Değişkenleri Bildirme Dim Source As Worksheet Dim Destination As Worksheet Dim SourceLastRow, DestLastRow As Long Application.ScreenUpdating = False 'Bu Çalışma Kitabındaki Her Kaynak için "Master" sayfasının olup olmadığını kontrol etmek için tüm sayfalarda döngü. = "Ana" Sonra MsgBox "Ana sayfa zaten var" Çıkış Alt Sonsa Sonraki '"Ana" sayfadan sonra yeni bir sayfa ekleme Hedefi Ayarla = Çalışma Sayfaları.Add(after:=Sayfalar("Ana")) Hedef.Ad = " Ana" 'Bu Çalışma Kitabındaki Her Kaynak İçin Çalışma kitabındaki tüm sayfalarda döngü. .Range("A1").SpecialCells(xlLastCell).Row Source.Source.UsedRange.Count > 1 ise Etkinleştir DestLastRow = Sheets("Master").Range("A1").SpecialCells(xlLastCell).Row If DestLastRow = 1 Ardından 'kaynak sayfadan hedef sayfaya veri kopyalama Source.Range("A 1", Range("A1").SpecialCells(xlLastCell))).Copy Destination.Range("A" & DestLastRow) Başka Source.Range("A2", Range("A1").SpecialCells(xlCellTypeLastCell))).Copy Destination.Range("A" & (DestLastRow + 1)) End If End If End If Next Destination.Activate Application.ScreenUpdating = True End Sub
Bu blogu beğendiyseniz, Facebook'ta arkadaşlarınızla paylaşın. Ayrıca bizi Twitter ve Facebook'ta da takip edebilirsiniz.
Sizden haber almayı çok isteriz, işimizi nasıl geliştirebileceğimizi ve sizin için nasıl daha iyi hale getirebileceğimizi bize bildirin. E-posta sitesinde bize yazın