İsimleri tek hücrede birleştirme

Katılım
18 Mayıs 2009
Mesajlar
1,184
Excel Vers. ve Dili
Excel 2016 Türkçe
Merhaba iki adet örnek dosyada, A sütunundaki isimler makro ile B sütununda birleştirilmesi gerekmektedir.

İki dosya arasındaki fark, birisi iki kelimelik isimler, diğeri üç kelimelik isimler

Alternatif makrolar da olursa sevinirim. incelerim. Tek çözümü varsa da hiç sorun yok. İşimi görür.

Teşekkürler






...
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
B sütunu birleştirilmiş hücre şeklinde mi olacak?
 
Katılım
18 Mayıs 2009
Mesajlar
1,184
Excel Vers. ve Dili
Excel 2016 Türkçe
B sütunu birleştirilmiş hücre şeklinde mi olacak?
Uzmanım mümkünse birleştirilmiş, (kolayca göreyim diye birleştirilmiş yapmıştım.

Ama eğer uğraştırırsa birleştirilmeden de olur.
Örnek ismin en üstteki ilk satırı olan B2 hücresine aktarılabilir.

Hepsi olur.

Saygılar
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

C++:
Option Explicit

Sub Concanate_Name_Surname_Step_2()
    Dim Veri As Variant, Son As Long, X As Long, Say As Long

    Son = Cells(Rows.Count, 1).End(3).Row
    Veri = Range("A2:A" & Son).Value

    Range("B2:B" & Rows.Count).Clear
  
    ReDim Liste(1 To Rows.Count, 1 To 1)
  
    For X = LBound(Veri) To UBound(Veri) Step 2
        Say = Say + 1
        Liste(Say, 1) = Veri(X, 1) & " " & Veri(X + 1, 1)
    Next

    If Say > 0 Then Range("B2").Resize(Say, 1) = Liste

    MsgBox "Ad-Soyadlar birleştirilmiştir.", vbInformation
End Sub

C++:
Option Explicit

Sub Concanate_Name_Surname_Step_3()
    Dim Veri As Variant, Son As Long, X As Long, Say As Long

    Son = Cells(Rows.Count, 1).End(3).Row
    Veri = Range("A2:A" & Son).Value

    Range("B2:B" & Rows.Count).Clear
   
    ReDim Liste(1 To Rows.Count, 1 To 1)
   
    For X = LBound(Veri) To UBound(Veri) Step 3
        Say = Say + 1
        Liste(Say, 1) = Veri(X, 1) & " " & Veri(X + 1, 1) & " " & Veri(X + 2, 1)
        Say = Say + 1
        Liste(Say, 1) = Empty
        Say = Say + 1
        Liste(Say, 1) = Empty
    Next

    If Say > 0 Then Range("B2").Resize(Say, 1) = Liste

    MsgBox "Ad-Soyadlar birleştirilmiştir.", vbInformation
End Sub
 

mustafa1205

Altın Üye
Katılım
23 Ekim 2010
Mesajlar
1,263
Excel Vers. ve Dili
Office 2016 / 64 Bit - Türkçe
Altın Üyelik Bitiş Tarihi
18-07-2026
Korhan Hocamın müsaadesiyle;

ilk çalışma için =A2&" "&A3

İkinci çalışma için =A2&" "&A3&" "&A4

olarak uygulayarak aşağı doğru çekiniz.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Elbette işlemler bahsettiğiniz şekilde birleştirilmiş hücreler şeklinde de yapılabilir. Fakat excel hücrelerinde yapılan bu fiziksel işlemler size zaman kaybettirecektir.
 
Katılım
18 Mayıs 2009
Mesajlar
1,184
Excel Vers. ve Dili
Excel 2016 Türkçe
Elbette işlemler bahsettiğiniz şekilde birleştirilmiş hücreler şeklinde de yapılabilir. Fakat excel hücrelerinde yapılan bu fiziksel işlemler size zaman kaybettirecektir.
Sayın uzmanım hepsini deneyeceğim. Eğer sizi uğraştırmaz ise birleştirilmiş makroları da denemek istiyorum. Zaman kaybetmeye razıyım

Teşekkürler
 
Katılım
18 Mayıs 2009
Mesajlar
1,184
Excel Vers. ve Dili
Excel 2016 Türkçe
Bir de uzmanım yukarda verdiğiniz ilk kodun üç isimliler için olanını da oluşturursanız sevinirim.

Birleştirilmiş hücre makrolarını da merakla bekleyeceğim.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
#4 nolu mesajımı revize ettim. İki dosya için kodlama ekledim. Birisi 2 hücreden oluşan isimler için, diğeri 3 hücreden oluşan isimler içindir.

Aşağıdaki kodlar ise birleştirilmiş hücrelere göre listeleme yapmaktadır.

C++:
Option Explicit

Sub Concanate_Name_Surname_Step_2()
    Dim Veri As Variant, Son As Long, X As Long, Say As Long

    Son = Cells(Rows.Count, 1).End(3).Row
    Veri = Range("A2:A" & Son).Value

    Range("B2:B" & Rows.Count).Clear
   
    ReDim Liste(1 To Rows.Count, 1 To 1)
   
    For X = LBound(Veri) To UBound(Veri) Step 2
        Say = Say + 1
        Liste(Say, 1) = Veri(X, 1) & " " & Veri(X + 1, 1)
        Say = Say + 1
        Liste(Say, 1) = Empty
    Next

    If Say > 0 Then
        Range("B2").Resize(Say, 1) = Liste
        For X = 2 To Son - 1 Step 2
            With Range("B" & X & ":B" & X + 1)
                .Merge
                .HorizontalAlignment = xlCenter
                .VerticalAlignment = xlCenter
            End With
        Next
    End If
   
    MsgBox "Ad-Soyadlar birleştirilmiştir.", vbInformation
End Sub

C++:
Option Explicit

Sub Concanate_Name_Surname_Step_3()
    Dim Veri As Variant, Son As Long, X As Long, Say As Long

    Son = Cells(Rows.Count, 1).End(3).Row
    Veri = Range("A2:A" & Son).Value

    Range("B2:B" & Rows.Count).Clear
   
    ReDim Liste(1 To Rows.Count, 1 To 1)
   
    For X = LBound(Veri) To UBound(Veri) Step 3
        Say = Say + 1
        Liste(Say, 1) = Veri(X, 1) & " " & Veri(X + 1, 1) & " " & Veri(X + 2, 1)
        Say = Say + 1
        Liste(Say, 1) = Empty
        Say = Say + 1
        Liste(Say, 1) = Empty
    Next

    If Say > 0 Then
        Range("B2").Resize(Say, 1) = Liste
        For X = 2 To Son - 1 Step 3
            With Range("B" & X & ":B" & X + 2)
                .Merge
                .HorizontalAlignment = xlCenter
                .VerticalAlignment = xlCenter
            End With
        Next
    End If
       
    MsgBox "Ad-Soyadlar birleştirilmiştir.", vbInformation
End Sub
 
Katılım
18 Mayıs 2009
Mesajlar
1,184
Excel Vers. ve Dili
Excel 2016 Türkçe
#4 nolu mesajımı revize ettim. İki dosya için kodlama ekledim. Birisi 2 hücreden oluşan isimler için, diğeri 3 hücreden oluşan isimler içindir.

Aşağıdaki kodlar ise birleştirilmiş hücrelere göre listeleme yapmaktadır.

C++:
Option Explicit

Sub Concanate_Name_Surname_Step_2()
    Dim Veri As Variant, Son As Long, X As Long, Say As Long

    Son = Cells(Rows.Count, 1).End(3).Row
    Veri = Range("A2:A" & Son).Value

    Range("B2:B" & Rows.Count).Clear
   
    ReDim Liste(1 To Rows.Count, 1 To 1)
   
    For X = LBound(Veri) To UBound(Veri) Step 2
        Say = Say + 1
        Liste(Say, 1) = Veri(X, 1) & " " & Veri(X + 1, 1)
        Say = Say + 1
        Liste(Say, 1) = Empty
    Next

    If Say > 0 Then
        Range("B2").Resize(Say, 1) = Liste
        For X = 2 To Son - 1 Step 2
            With Range("B" & X & ":B" & X + 1)
                .Merge
                .HorizontalAlignment = xlCenter
                .VerticalAlignment = xlCenter
            End With
        Next
    End If
   
    MsgBox "Ad-Soyadlar birleştirilmiştir.", vbInformation
End Sub

C++:
Option Explicit

Sub Concanate_Name_Surname_Step_3()
    Dim Veri As Variant, Son As Long, X As Long, Say As Long

    Son = Cells(Rows.Count, 1).End(3).Row
    Veri = Range("A2:A" & Son).Value

    Range("B2:B" & Rows.Count).Clear
   
    ReDim Liste(1 To Rows.Count, 1 To 1)
   
    For X = LBound(Veri) To UBound(Veri) Step 3
        Say = Say + 1
        Liste(Say, 1) = Veri(X, 1) & " " & Veri(X + 1, 1)
        Say = Say + 1
        Liste(Say, 1) = Empty
        Say = Say + 1
        Liste(Say, 1) = Empty
    Next

    If Say > 0 Then
        Range("B2").Resize(Say, 1) = Liste
        For X = 2 To Son - 1 Step 3
            With Range("B" & X & ":B" & X + 2)
                .Merge
                .HorizontalAlignment = xlCenter
                .VerticalAlignment = xlCenter
            End With
        Next
    End If
       
    MsgBox "Ad-Soyadlar birleştirilmiştir.", vbInformation
End Sub
Sayın uzmanım önce fikrinize emeğinize sağlık.

Verdiğiniz kodları yukardan aşağıya doğru düşünecek olursak
1 ve 3 sorun yok
2 ve 4 te minik sorun var.
Onlar da düzeltildi mi tamamdır



2 nolu kod, örnek2



4 nolu kod, örnek4
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Kopyala-Yapıştır kurbanı oluyoruz.

Revize ettim. Tekrar deneyiniz.
 
Katılım
18 Mayıs 2009
Mesajlar
1,184
Excel Vers. ve Dili
Excel 2016 Türkçe
Kopyala-Yapıştır kurbanı oluyoruz.

Revize ettim. Tekrar deneyiniz.
Sayın uzmanım
Yukardan aşağıya 1,2,3,4 olarak düşünecek olursak hepsi çok güzel oldu. Elinize sağlık. Sadece 1 de çok minik bir düzeltme yapınca bu konuyu neticelendirmiş olacağız


 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,269
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Aşağıdaki gibi olabilir.

3 hücreden oluşan isimler için döngü içindeki aşağıdaki satırlardan 1 adet daha eklerseniz sonuç alırsınız.

Kod:
        Say = Say + 1
        Liste(Say, 1) = Empty

C++:
Option Explicit

Sub Concanate_Name_Surname_Step_2()
    Dim Veri As Variant, Son As Long, X As Long, Say As Long

    Son = Cells(Rows.Count, 1).End(3).Row
    Veri = Range("A2:A" & Son).Value

    Range("B2:B" & Rows.Count).Clear
   
    ReDim Liste(1 To Rows.Count, 1 To 1)
   
    For X = LBound(Veri) To UBound(Veri) Step 2
        Say = Say + 1
        Liste(Say, 1) = Veri(X, 1) & " " & Veri(X + 1, 1)
        Say = Say + 1
        Liste(Say, 1) = Empty
    Next

    If Say > 0 Then Range("B2").Resize(Say, 1) = Liste

    MsgBox "Ad-Soyadlar birleştirilmiştir.", vbInformation
End Sub
 
Üst