Excel KTF Alan Birleştir


Excel üzerinde seçilen alanı tek bir metin olarak birleştirmeye yarıyor. Hücrelerdeki veriler standart olarak boşluk karakteriyle ayrılırken istenirse başka bir karakterle veya metinle de ayrılabiliyor.

Kod
Option Explicit

Public Function AlanBirlestir(alan As Range, Optional ayirici As String = " ") As String
    Dim birlestirilmisMetin As String
    Dim hucre               As Range
    
    On Error GoTo Hata
    
    For Each hucre In alan
        If hucre <> Empty Then
            birlestirilmisMetin = birlestirilmisMetin & _
                                  hucre.Value & _
                                  ayirici
        End If
    Next
    
    birlestirilmisMetin = Left(birlestirilmisMetin, _
                               Len(birlestirilmisMetin) - Len(ayirici))


    AlanBirlestir = birlestirilmisMetin

    On Error GoTo 0
    Exit Function

Hata:
    AlanBirlestir = CVErr(xlErrValue)
End Function
Kod (Açıklamalı)
Option Explicit

Public Function AlanBirlestir(alan As Range, Optional ayirici As String = " ") As String
    '--------------------------------------------------
    'Seçtiğimiz alandaki metinleri tek metin
    'haline getirip değişkene aktaracağız.
    'Aktaracağımız değişkeni belirledik.
    '--------------------------------------------------
    Dim birlestirilmisMetin As String
    
    
    '--------------------------------------------------
    'Alandaki her hücreyi kontrol edeceğiz.
    'Bunu da yine değişken aracılığıyla yapacağız.
    '--------------------------------------------------
    Dim hucre               As Range
    
    
    '--------------------------------------------------
    'Bir hata olması durumunda "Hata"
    'isimli referans noktasına git.
    '--------------------------------------------------
    On Error GoTo Hata
    
    
    '--------------------------------------------------
    'Seçilen alandaki her hücreyi kontrol et.
    '--------------------------------------------------
    For Each hucre In alan
        
        
        '--------------------------------------------------
        'Eğer hücre boş değilse işlem yap.
        '--------------------------------------------------
        If hucre <> Empty Then
            
            
            '--------------------------------------------------
            'Eğer hücre boş değilse metne dahil et.
            '--------------------------------------------------
            birlestirilmisMetin = birlestirilmisMetin & _
                                  hucre.Value & _
                                  ayirici
        End If
    Next
    
    
    '--------------------------------------------------
    'Döngü bittiğinde sonunda yine ayırıcı
    'olacak. Bu döngünün yapısından kaynaklanıyor.
    'İşte o son ayırıcı karakteri ya da metni
    'sonuç metninden temizliyoruz.
    '--------------------------------------------------
    birlestirilmisMetin = Left(birlestirilmisMetin, _
                               Len(birlestirilmisMetin) - Len(ayirici))

    
    '--------------------------------------------------
    'Sonucu yazdır.
    '--------------------------------------------------
    AlanBirlestir = birlestirilmisMetin

    
    '--------------------------------------------------
    'Hata olursa mesaj ver.
    '--------------------------------------------------
    On Error GoTo 0
    
    
    '--------------------------------------------------
    'Fonksiyondan çık.
    'Şimdi fonksiyon eğer hatasız çalışmışsa işi
    'bitmiş oluyor. Devam edersa hata olduğunda
    'çalışan kısmı da çalıştıracak. Bunu eğer bir
    'hata yoksa istemiyoruz. Bu yüzden bu noktada
    'fonksiyondan çıkıyoruz.
    '--------------------------------------------------
    Exit Function

Hata:
    '--------------------------------------------------
    'Hata olmuşsa bunu excel hatalarından
    'faydalanarak yazdır.
    '--------------------------------------------------
    AlanBirlestir = CVErr(xlErrValue)
End Function

Bunlar da hoşunuza gidebilir...


Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir