Merhaba,
Yerleşik excel fonksiyonları ile yapamazsınız.
Kullanıcı tanımlı fonksiyonlarla yani makro ile yapabilirsiniz.
Forumda hücreleri birleştirme olarak arama yapın.
Function birleştirme(hedef As Range, Optional ayırac As String = ",") As String
Dim alan As Range
Dim sonuc As String
For Each alan In hedef
If alan.Value <> "" Then
sonuc = sonuc & ayırac & alan.Value
End If
Next alan
If sonuc <> "" Then
sonuc = Mid(sonuc, Len(ayırac) + 1)
End If
birleştirme = sonuc
End Function
=birleştirme(A5:A11)
Function birlest(hucre As Range, Optional imlec As String = "") As String
For Each alan In hucre
k = k & alan & imlec
Next alan
If imlec = "" Then
birlest = k
Else
birlest = VBA.Left(k, VBA.Len(k) - 1)
End If
End Function
Merhaba,
Aramıza hoşgeldiniz.
Siteden elde ettiğim ekli kodu bir modüle kopyalayınız
çalışma şekli ise,Kod:Function birleştirme(hedef As Range, Optional ayırac As String = ",") As String Dim alan As Range Dim sonuc As String For Each alan In hedef If alan.Value <> "" Then sonuc = sonuc & ayırac & alan.Value End If Next alan If sonuc <> "" Then sonuc = Mid(sonuc, Len(ayırac) + 1) End If birleştirme = sonuc End Function
A5:A11 arasındaki hücrelerde olanları A1'eifadesiyle alacaktırKod:=birleştirme(A5:A11)
Bu vesile ile bu KTF 'yi yazan adını bilmediğim üstad arkadaşa teşekkür eder saygılar sunarım
Kolay gelsin
Merhaba,
Aramıza hoşgeldiniz.
Siteden elde ettiğim ekli kodu bir modüle kopyalayınız
çalışma şekli ise,Kod:Function birleştirme(hedef As Range, Optional ayırac As String = ",") As String Dim alan As Range Dim sonuc As String For Each alan In hedef If alan.Value <> "" Then sonuc = sonuc & ayırac & alan.Value End If Next alan If sonuc <> "" Then sonuc = Mid(sonuc, Len(ayırac) + 1) End If birleştirme = sonuc End Function
A5:A11 arasındaki hücrelerde olanları A1'eifadesiyle alacaktırKod:=birleştirme(A5:A11)
Bu vesile ile bu KTF 'yi yazan adını bilmediğim üstad arkadaşa teşekkür eder saygılar sunarım
Kolay gelsin
Bu kodun bulunduğu excel'i farklı kaydetten excel eklentisi olarak kaydedin.
Dosya>Seçenekler>Eklentiler'den bu dosyayı excel'in içine kurulumunu yapabilirsiniz.
Function birleştirme(hedef As Range, Optional ayırac As String = ",") As String
Function KBİRLEŞTİR(Alan As Range, Optional Kriter = ",") As String
Dim Veri As Range
For Each Veri In Alan
If Veri.Value <> "" Then
If KBİRLEŞTİR = "" Then
KBİRLEŞTİR = "'" & Veri.Value & "'"
Else
KBİRLEŞTİR = KBİRLEŞTİR & Kriter & "'" & Veri.Value & "'"
End If
End If
Next
End Function
Arkadaş,
satırdaki "," ifadesini "','" şeklinde değiştiriniz.Kod:Function birleştirme(hedef As Range, Optional ayırac As String = ",") As String
iyi çalışmalar
=[COLOR="magenta"]"[/COLOR]'[COLOR="magenta"]"&[COLOR="Black"]birleştirme(A1:A11)[/COLOR]&"[/COLOR]'[COLOR="Magenta"]"[/COLOR]
Alternatif;
Kod:Function KBİRLEŞTİR(Alan As Range, Optional Kriter = ",") As String Dim Veri As Range For Each Veri In Alan If Veri.Value <> "" Then If KBİRLEŞTİR = "" Then KBİRLEŞTİR = "'" & Veri.Value & "'" Else KBİRLEŞTİR = KBİRLEŞTİR & Kriter & "'" & Veri.Value & "'" End If End If Next End Function
Örnek dosya ekleyebilir misiniz?
Ona göre kodu revize edelim.
Lütfen dosyanızda nasıl sonuç görmek istediğinizi de belirtin.
Function birleştirme2(Alan As Range, Optional Kriter = ",") As String
Dim Veri As Range
For Each Veri In Alan
deger = Veri.Value
deger = Replace(deger, """", "")
If Veri.Value <> "" Then
If birleştirme2 = "" Then
birleştirme2 = "'" & deger & "'"
Else
birleştirme2 = birleştirme2 & Kriter & "'" & deger & "'"
End If
End If
Next
End Function
Function KBİRLEŞTİR(Alan As Range, Optional Kriter = ",") As String
Dim Veri As Range
For Each Veri In Alan
If Veri.Value <> "" Then
If InStr(1, Veri.Value, """") = 0 Then
If KBİRLEŞTİR = "" Then
KBİRLEŞTİR = "'" & Veri.Value & "'"
Else
KBİRLEŞTİR = KBİRLEŞTİR & Kriter & "'" & Veri.Value & "'"
End If
End If
End If
Next
End Function
Function EBİRLEŞTİR(Alan As Range, Optional Kriter = ",") As String
Dim Veri As Range
For Each Veri In Alan
If Veri.Value <> "" Then
If InStr(1, Veri.Value, """") > 0 Then
If EBİRLEŞTİR = "" Then
EBİRLEŞTİR = Veri.Value
Else
EBİRLEŞTİR = EBİRLEŞTİR & Kriter & Veri.Value
End If
End If
End If
Next
End Function
@Korhan Ayhan ın kodunda değişiklik yaptım.
Asıl veride değişiklik yapmadan, işleme başlamadan önce " ları siliyor.
Kod:Function birleştirme2(Alan As Range, Optional Kriter = ",") As String Dim Veri As Range For Each Veri In Alan deger = Veri.Value deger = Replace(deger, """", "") If Veri.Value <> "" Then If birleştirme2 = "" Then birleştirme2 = "'" & deger & "'" Else birleştirme2 = birleştirme2 & Kriter & "'" & deger & "'" End If End If Next End Function
Aşağıdaki fonksiyonları kullanabilirsiniz.
Kod:Function KBİRLEŞTİR(Alan As Range, Optional Kriter = ",") As String Dim Veri As Range For Each Veri In Alan If Veri.Value <> "" Then If InStr(1, Veri.Value, """") = 0 Then If KBİRLEŞTİR = "" Then KBİRLEŞTİR = "'" & Veri.Value & "'" Else KBİRLEŞTİR = KBİRLEŞTİR & Kriter & "'" & Veri.Value & "'" End If End If End If Next End Function
Kod:Function EBİRLEŞTİR(Alan As Range, Optional Kriter = ",") As String Dim Veri As Range For Each Veri In Alan If Veri.Value <> "" Then If InStr(1, Veri.Value, """") > 0 Then If EBİRLEŞTİR = "" Then EBİRLEŞTİR = Veri.Value Else EBİRLEŞTİR = EBİRLEŞTİR & Kriter & Veri.Value End If End If End If Next End Function