VBA Kullanarak Birden Çok Excel Çalışma Kitabı Nasıl Birleştirilir

VBA Kullanarak Birden Çok Excel Çalışma Kitabı Nasıl Birleştirilir

Çeşitli veri kaynaklarıyla çalışırken, son bir veri parçasına ulaşmadan önce çoğu zaman birden oldukça emek verme kitabı ve emek verme sayfası derlemekte zorlanabilirsiniz. Güne başlamadan ilkin birleştirmeniz ihtiyaç duyulan birkaç yüz emek verme kitabınız olduğu bir durum düşünün.

Asla kimse, son olarak birleştirilmiş emek verme kitabı yapmadan ilkin değişik kaynaklar üstünde çalışmak, her emek verme kitabını açmak, çeşitli sayfalardaki verileri kopyalamak ve yapıştırmak için sonsuz saatler harcamak istemez. Vba makrosu bunu sizin için yapabilirse ne olur?

Bu kılavuzla, birden oldukça emek verme kitabını birkaç dakika içinde (veri dosyaları oldukça fazlaysa) birleştirmek için kendi Excel VBA makro kodunuzu oluşturabilirsiniz.

Kendi VBA Makro Kodunuzu Oluşturmak için ÖnKoşullar

Kaynak veri emek verme kitaplarının geri kalanı ayrıyken VBA kodunu barındırmak için bir emek verme kitabına ihtiyacınız vardır. Ek olarak, bir emek verme kitabı oluşturma Konsoli -de tüm emek verme kitaplarınızdaki birleştirilmiş verileri depolamak için.

Klasör oluşturma Konsolidasyon tüm kaynak emek verme kitaplarınızı depolamak için tercih edilen konumda. Makro çalıştığında, bu klasörde depolanan her emek verme kitabı içinde geçiş yapar, içinde ne olduğu çeşitli sayfalardan kopyalar ve Birleştirilmiş emek verme kitabına yerleştirir.

Kendi Excel VBA Kodunuzu Oluşturma

Önkoşullar yoldan çıktıktan sonrasında, kodu incelemeye ve gereksinimlerinize uyarlamak için temelleri hacklemeye başlamanın zamanı geldi.

İlgili: Bilmeniz Ihtiyaç duyulan Gelişmiş Microsoft Excel Özellikleri

Basın Alt+F11 vba makro kodu düzenleyicisini açmak için Excel’de tuşu tuşlarına girin. Aşağıda yazılan kodu yapıştırın ve dosyayı Makro etkin bir emek verme kitabı olarak kaydedin (.xlsm uzantısı).

Sub openfiles()

'declare the variables used within the VBA code

Dim MyFolder As String, MyFile As String, wbmain As Workbook, lastrow As Long

'disable these functions to enhance code processing

With Application
.DisplayAlerts = False
.ScreenUpdating = False
End With

'change the path of the folder where your files are going to be saved

MyFolder = InputBox("Enter path of the Consolidation folder") & ""

'gömü the reference of the folder in a macro variable

MyFile = Dir(MyFolder)

'open a loop to cycle through each individual workbook stored in the folder

Do While Len(MyFile) > 0

'activate the Consolidation workbook

Windows("Consolidation").Activate

'calculate the last populated row

Range("a1048576").Select
Selection.End(xlUp).Select
ActiveCell.Offset(1, 0).Select

'open the first workbook within the Consolidation folder

Workbooks.Open Filename:=MyFolder & MyFile

Windows(MyFile).Activate

'toggle through each sheet within the workbooks to copy the data

Dim ws As Worksheet
For Each ws In Sheets

ws.Activate
ws.AutoFilterMode = False

'ignore the header and copy the data from row 2
If Cells(2, 1) = "" Then GoTo 1

GoTo 10

1: Next

10: Range("a2:azca20000").Copy

Windows("Consolidation").Activate

'paste the copied contents

ActiveSheet.Paste

Windows(MyFile).Activate

'close the open workbook once the data is pasted

ActiveWorkbook.Close

'empty the cache to store the value of the next workbook

MyFile = Dir()

'open the next file in the folder

Loop

'enable the disabled functions for future use

With Application
.DisplayAlerts = True
.ScreenUpdating = True
End With

End Sub

VBA Kodu Açıklandı

Kodun ilk kısmı, tüm VBA kodunuzu içeren bir altyordam tanımlamaktır. Altroutine’i Alt, arkasından kodun adı. Alt ad herhangi bir şey olabilir; ideal olarak, yazmak suretiyle olduğunuz kodla ilgili bir ad tutmalısınız.

İlgili: Excel İpuçlarını ve Püf Noktalarını Öğrenmek için Web Siteleri ve Bloglar

Excel VBA, kullanıcı tarafınca oluşturulan değişkenleri ve bunların ilgili veri türlerini Dim (boyut).

Kodunuzun işlem hızını çoğaltmak için, kod yürütmeyi yavaşlatan ekran güncelleştirmesini kapatabilir ve tüm ikazları bastırabilirsiniz.

Kullanıcıdan veri dosyalarının depolandığı klasörün yolu istenir. Klasör içinde depolanan her emek verme kitabını açmak, verileri her sayfadan kopyalamak ve Konsolidasyon Emek harcama kitabını.

Excel VBA’nın son doldurulan satırı hesaplayabilmesi için Birleştirme emek verme kitabı etkinleştirilir. Emek harcama sayfasındaki son hücre seçilir ve son satır emek verme kitabında uzaklık işlevi kullanılarak hesaplanır. Makro kaynak dosyalardan veri eklendiğinde bu son aşama yararlıdır.

Döngü ilk kaynak dosyayı açtığında, filtreler her sayfadan kaldırılır (var ise) ve A2 ile AZ20000 içinde değişen veriler kopyalanır ve Konsolidasyon emek verme kitabına yapıştırılır.

İşlem, tüm emek verme kitabı sayfaları ana emek verme kitabına eklenene kadar yinelenir.

İlgili: Master Advanced Excel’e En İyi Çevrimiçi Kurslar

Son olarak, tüm veriler yapıştırıldıktan sonrasında kaynak dosya kapatılmıştır. VBA makrosunun bir sonraki dosya kümesi için aynı adımları yineleyebilebilmesi için sonraki emek verme kitabı açılır.

Excel VBA kod snippet'i

Döngü, ana emek verme kitabındaki tüm dosyalar otomatikman güncelleştirilene kadar çalışacak şekilde kodlanır.

Kullanıcı Tabanlı Özelleştirmeler

Kimi zaman, bilhassa son kullanıcıysanız, dahili istemler hakkında endişelenmek istemezsiniz. Koddaki Konsolidasyon klasörünün yolunu durağan(durgun) kodlamayı tercih ederseniz, kodun bu bölümünü değiştirebilirsiniz:

MyFolder = InputBox("Enter path of the Consolidation folder") & ""

Hedef:

MyFolder = “Folder path” & ""

Ek olarak, adım bu koda dahil olmadığı için sütun başvurularını da değiştirebilirsiniz. Son sütun başvurusunu son doldurulmuş sütun değerinizle değiştirmeniz yeterlidir (BU durumda AZ). Son doldurulan satırın makro kodu vesilesiyle hesaplendiğini hatırlamanız gerekir, bundan dolayı yalnızca sütun başvurusunu değiştirmeniz gerekir.

Bu makrodan en iyi şekilde yararlanmak için, yalnızca emek verme kitaplarını aynı halde birleştirmek için kullanabilirsiniz. Yapılar farklıysa, bu VBA makrosunu kullanamazsınız.

Excel VBA Makrosunu Kullanarak Birden Oldukça Emek harcama Kitabını Birleştirme

Excel VBA kodu oluşturmak ve değişiklik yapmak, bilhassa kod içindeki bazı nüansları anlıyorsanız nispeten kolaydır. VBA her kod satırında dizgesel olarak çalışır ve satır satır yürütür.

Kodda herhangi bir değişim yapmış olursanız, kodun yürütülmesini kesintiye uğratacağından, kodların sırasını değiştirmediğinizden güvenli olmalısınız.

Yorum Yap
0 Yorum yapan