DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Acaba işe yarar konunun linkini verebilir misiniz. Forumda bulamadım da.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
Malesef bu makro kodunu nereye yapıştıracağımı bilmiyorum. Yardımcı olabilirseniz sevinirimMerhaba,
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
Şimdi hallettim. Bu kodun kalıcı olmasını nasıl sağlarım. İlla modul açık mı olması lazımMerhaba,
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
Peki her bu olayın aynısı ama her hücrenin başı sonuna tırnak koymak istersem nasıl yapabilirimBu 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
Çok teşekkürler. Ama bir sorum daha olucak. Şu an bu formülü kullanınca ilk ve son girdiye tırnak işareti eklenmiyor. Makroya bunu nasıl ekleyebiliriz?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]
MerhabaAlternatif;
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
http://s4.dosya.tc/server2/37gjtn/TEST2.rar.htmlÖ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
Çok teşekkürler tam istediğim gibi olmuş. Acaba sırf virgülle ayrılan makroya bunu nasıl uyarlayabiliriz.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