• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

hücre birleştirme

Katılım
25 Kasım 2012
Mesajlar
107
Excel Vers. ve Dili
Office 2013
merhabalar;
ben hücreleri birleştirmek istiyorum ama şöyle ki ;
a1 ve a60 arasındaki hücreleri birleştirmek ve aralarına , (virgül işareti ) koymak istiyorum.
teşekkürler.
kolay gelsin
 
Kod:
=A1&","&A60

işinizi görüyor mu.
 
ALT+F11 ile VBA düzenleyici açın.

Insert-Module ile bir modül ekleyin ve aşağıdaki kodları yapıştırın.

Kod:
Function Birleştirme(Ayırac As Variant, ParamArray HucreAralığı() As Variant) As String
    Dim Cell As Range, Area As Variant
    If IsMissing(Ayırac) Then Ayırac = ""
    For Each Area In HucreAralığı
        If TypeName(Area) = "Range" Then
            For Each Cell In Area
                If Len(Cell.Value) Then Birleştirme = Birleştirme & Ayırac & Cell.Value
            Next
        Else
            Birleştirme = Birleştirme & Ayırac & Area
        End If
    Next
    Birleştirme = Mid(Birleştirme, Len(Ayırac) + 1)
End Function


Sonuç göreceğiniz hücreye

Kod:
=Birleştirme(",";A1:A60)

yazın.
 
ALT+F11 ile VBA düzenleyici açın.

Insert-Module ile bir modül ekleyin ve aşağıdaki kodları yapıştırın.

Kod:
Function Birleştirme(Ayırac As Variant, ParamArray HucreAralığı() As Variant) As String
    Dim Cell As Range, Area As Variant
    If IsMissing(Ayırac) Then Ayırac = ""
    For Each Area In HucreAralığı
        If TypeName(Area) = "Range" Then
            For Each Cell In Area
                If Len(Cell.Value) Then Birleştirme = Birleştirme & Ayırac & Cell.Value
            Next
        Else
            Birleştirme = Birleştirme & Ayırac & Area
        End If
    Next
    Birleştirme = Mid(Birleştirme, Len(Ayırac) + 1)
End Function


Sonuç göreceğiniz hücreye

Kod:
=Birleştirme(",";A1:A60)

yazın.
= işareti ile Birleştirme(...) arasında boşluk olmadan çalışmadı
Belirtmek istedim, kolay gelsin.
 
Alternatif.A1:A60 hücresini.B1 hücresinde birleştirir.
Kod:
Sub Birleştır()
Dim rng As Range, isatır As Integer
 Set rng = ActiveSheet.Range("A1:A60")
 Range("B1").ClearContents
Dim alır As Variant
 For isatır = 1 To rng.Rows.Count
    If Not rng(isatır, 1).Value = vbNullString Then
    alır = alır & "," & rng(isatır, 1).Value
End If
Range("B1") = Mid(alır, 2)
    Next isatır
 End Sub
 
WinRar ile açabilirsiniz....

.
 
Merhaba,

Bir Kullanıcı Tanımlı Fonksiyon da benden olsun.
Kodları bir modüle ekleyiniz.

Parametreleri Alan ve Ayraç. Ayracı belirtmezseniz "," kabul eder.

Kullanımı

Kod:
=ÇOKLUBİRLEŞTİR(A1:A5)

Fonksiyon :

Kod:
Function ÇOKLUBİRLEŞTİR(Rng As Range, Optional Tür As String = ",")

    Dim r As Range
    Dim t
    
    For Each r In Rng
    
        If Len(r) > 0 Then
        
            If Len(t) = 0 Then
                t = r
            Else
                t = t & Tür & r
            End If
        End If
        
    Next r
    
    ÇOKLUBİRLEŞTİR = t
    
End Function
 
Alternatif olsun;
İşlemleri sırasıyla yapınız.

1-)Aşağıdaki formülü yazın.
Kod:
=BİRLEŞTİR(DEVRİK_DÖNÜŞÜM(A1:A60))
2-) Formül içinde klavyeden F9 tuşuna basın. Basınca değerlerin değiştiğini göreceksiniz.
3-) Tekrar formül içine gelin, formülün başındaki, sonundaki kıvrımlı parantezleri ( { ), ( } ) ve (=) parantez içindekileri silin.
4-) Tekrar formül üzerine gelin klavyeden CTRL + F tuşlarına basın. Çıkan ekranda Değiştir sekmesine basın Aranan: kısmına ( ";" ) parantez içindekini yazın. Yeni değer: kısmına ( , ) parantez içindekini yazın. Daha sonra aşağıda "Değiştir" butonuna basın.
5-)Ve mutlu son...



Böyle uzun uzun yazdım ama yapınca göreceksiniz çok basit olduğunu.
 
Alternatif olsun;
İşlemleri sırasıyla yapınız.

1-)Aşağıdaki formülü yazın.
Kod:
=BİRLEŞTİR(DEVRİK_DÖNÜŞÜM(A1:A60))
2-) Formül içinde klavyeden F9 tuşuna basın. Basınca değerlerin değiştiğini göreceksiniz.
3-) Tekrar formül içine gelin, formülün başındaki, sonundaki kıvrımlı parantezleri ( { ), ( } ) ve (=) parantez içindekileri silin.
4-) Tekrar formül üzerine gelin klavyeden CTRL + F tuşlarına basın. Çıkan ekranda Değiştir sekmesine basın Aranan: kısmına ( ";" ) parantez içindekini yazın. Yeni değer: kısmına ( , ) parantez içindekini yazın. Daha sonra aşağıda "Değiştir" butonuna basın.
5-)Ve mutlu son...



Böyle uzun uzun yazdım ama yapınca göreceksiniz çok basit olduğunu.

İlginç bir kullanım, teşekkürler sayın Metehan8001
 
Necdet Bey;

Metehan beyin önerisini, hücreye

=A1:A60 & ","

formülünü dizi formül olarak girdikten sonra yine F9 tuşunu kullanarak da yapabilirsiniz.

Ama bence, 7 No'lu mesajda Ali beyin önerisi en güzeliydi ....

.
 
Necdet Bey;

Metehan beyin önerisini, hücreye

=A1:A60 & ","

formülünü dizi formül olarak girdikten sonra yine F9 tuşunu kullanarak da yapabilirsiniz.

Ama bence, 7 No'lu mesajda Ali beyin önerisi en güzeliydi ....

.

Sizden de yeni bir şey öğrendim Haluk bey, sağolun.

Ali bey fonksiyon yazmış onu görmüştüm.
 
Günaydın Üstatlar;

Çözümlerinizi, heyecan ve zevkle izledim. Sağ olun, var olun...

Sevgi ve saygılarımla,
 
Eki inceler misiniz.

Ali bey sizin göndermiş olduğunuz virgül ile birleştirilmiş zip dosyasını bilgisayarıma indirdiğimde formül tam olarak çalışıyor. Yalnız kendim xls. dosyası açtığımda makroyu girdiğim halde "concat" formülü çalışmıyor. #AD? hatası veriyor.
Microsoft Office Professional Plus 2010 (32 bit) kullanıyorum. Formülün neden aktif hale gelmediği hakkında görüşünüzü yazabilir misiniz?

7 No'lu mesajda Ali beyin önerisine istinaden yazılmıştır.
 
Kullanılan fonksiyon yerleşik fonksiyon değildir. Makro ile hazırlanmıştır. Modüldeki kodları kendi dosyanıza alıp kullanabilirsiniz.

Bu tarz fonksiyonlara kullanıcı tanımlı fonksiyon denmektedir.
 
Geri
Üst