Excel’de VBA ile Hücre Birleştirme Kodu

Soru: Excel’de VBA ile satır atlayarak birleştirme nasıl yapılır?

Excel'de VBA ile satır atlatarak otomatik hücre birleştirme

Excel, veri analizi ve raporlama işlemlerinde vazgeçilmez bir araç. Ancak bazı durumlarda, manuel olarak yapılması gereken işlemleri otomatikleştirmek işleri çok daha verimli hale getirir. Bugünkü yazımızda, VBA (Visual Basic for Applications) kullanarak belirli bir düzende hücre birleştirme işlemi yapan bir makro kodunu inceleyeceğiz.

Ne Yapacağız?

Amacımız, Excel’in B sütunundaki veriler arasında her üç satırlık blokta ilk iki satırı alıp, bunları birleştirerek C sütununa yazmak. Örneğin:

B Sütunu C Sütunu
Merhaba
DünyaMerhaba Dünya
(boş)
Bugün
GüzelBugün Güzel
(boş)

Gördüğünüz gibi, her üç satırda bir işlem yapılıyor ve B sütunundaki ilk iki hücre birleştirilerek C sütununa yazılıyor. Peki bu işlemi nasıl otomatikleştiririz?

Kodun Tamamı

Sub BirlesikYaz()
    Dim i As Long
    Dim sonSatir As Long

    ' Son dolu hücreyi bulmak için
    sonSatir = Cells(Rows.Count, "B").End(xlUp).Row

    ' i: 1, 4, 7, 10 ... şeklinde ilerler
    For i = 1 To sonSatir Step 3
        If Cells(i, "B").Value <> "" Or Cells(i + 1, "B").Value <> "" Then
            Cells(i + 1, "C").Value = Cells(i, "B").Value & " " & Cells(i + 1, "B").Value
        End If
    Next i
End Sub

Kodun Satır Satır Açıklaması

1. Değişken Tanımlamaları

Dim i As Long
Dim sonSatir As Long

Burada iki değişken tanımlıyoruz:

  • i: Döngü sayacı.
  • sonSatir: B sütunundaki son dolu hücrenin satır numarası.

2. Son Satırı Bulma

sonSatir = Cells(Rows.Count, "B").End(xlUp).Row
Bu satır, B sütununda en alttan yukarı çıkıp ilk dolu hücreyi bulur ve bu hücrenin satır numarasını sonSatir değişkenine atar.

3. Her 3 Satırda Bir Döngü

For i = 1 To sonSatir Step 3
Bu döngü, 1’den başlayarak sonSatir değerine kadar 3’er 3’er ilerler. Yani i değerleri 1, 4, 7, 10 şeklinde gider. Bu sayede her 3 satırlık blokta işlem yapılır.

4. Hücreleri Birleştirme ve Yazma

If Cells(i, "B").Value <> "" Or Cells(i + 1, "B").Value <> "" Then
Cells(i + 1, "C").Value = Cells(i, "B").Value & " " & Cells(i + 1, "B").Value

Burada iki koşula bakılır:

  • Eğer i ya da i+1 satırındaki hücre boş değilse, bu iki hücrenin değeri birleştirilir (araya bir boşluk konur).
  • Sonuç i+1. satırın C sütununa yazılır.

Sonuç

VBA ile yapılan bu otomasyon sayesinde Excel’de tekrarlayan işleri saniyeler içinde halletmek mümkün. Özellikle yapısal olarak düzenli verilerle çalışıyorsanız, bu tür makrolar büyük zaman kazandırabilir.

Siz de benzer işlemler için kendi makrolarınızı yazabilir ya da bu kodu geliştirerek farklı işlemlere uyarlayabilirsiniz. Eğer başka bir senaryoda farklı birleştirme veya koşullu işlemler yapmak isterseniz, yorumlar kısmında belirtin – yardımcı olalım!

Yorumlar

Bu blogdaki popüler yayınlar

Luhn Algoritmasıyla Kredi Kartı Validasyon Kontrolü

Google Maksimum Performans Kampanyalarından Maksimum Dönüşüm Nasıl Alınır?

Google Ads'te TBM Düşüren Bir Anahtar Kelime Stratejisi