A sütunundaki ile B sütunundaki ad soyadı C sütununda bir boşlukla birleştirme

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,791
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Merhaba Arkadaşlar,
Kod:
Sub AdBirlestir()
    Dim Son As Long, x As Long
    Son = Cells(Rows.Count, "A").End(3).Row
        For x = 1 To Son
            Cells(x, 3) = Application.Proper(Cells(x, 1)) & " " & Cells(x, 2)
        Next x
End Sub
A sütunundaki ile B sütunundaki ad soyadı C sütununda bir boşlukla birleştirme makrosunu da hızlandırmak mümkün olur mu?
Saygılarımla
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Denemeden cevaplıyorum.
C++:
Sub AdBirlestir()
    Dim Son As Long, x As Long
    Son = Cells(Rows.Count, "A").End(3).Row
    Dizi = Range("A1:B" & Son).Value
    ReDim Liste(1 To UBound(Dizi), 1 To 1)
    For x = 1 To UBound(Dizi)
            Liste(x) = Dizi(i, 1) & " " & Dizi(i, 2)
    Next x
    Range("C1").Resize(UBound(Dizi)) = Liste
End Sub
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,791
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Ömer faruk Hocam,
Hata var galiba
i yerine x koyunca yine aynı satırda hata veriyor
Saygılarımla
 

Ekli dosyalar

dEdE

Destek Ekibi
Destek Ekibi
Katılım
1 Temmuz 2005
Mesajlar
2,605
Excel Vers. ve Dili
Ofis 2013 TR 64 Bit
Alternatif
Benim bilgisayarda 30.000 satırda sizin kodunuz 2,06 saniye, aşağıdaki kod ise 0,22 saniyede işlemi bitirdi.
C++:
Sub AdBirlestir()
myTime = Timer
    ss = Cells(Rows.Count, "A").End(3).Row
    myArr1 = Sayfa1.Range("A1:A" & ss)
    myArr2 = Sayfa1.Range("B1:B" & ss)
Set myList = CreateObject("System.Collections.ArrayList")
    For i = 1 To UBound(myArr1)
       myList.Add myArr1(i, 1) & " " & myArr2(i, 1)
    Next
    Range("C1").Resize(myList.Count, 1).Value = WorksheetFunction.Transpose(myList.toArray)
 
    MsgBox "Görev  tamamlandı." & vbCrLf & "İYİ YILLAR" & vbCrLf & _
               "İşlem süresi ; " & Format(Timer - myTime, "0.00") & " Saniye", vbInformation, "BİLGİ"
End Sub
Not: Sayın @ÖmerFaruk hocamın kodundaki Liste(x) = Dizi(i, 1) & " " & Dizi(i, 2) satırını Liste(x, 1) = Dizi(x, 1) & " " & Dizi(x, 2) satırı ile değiştirerek dener misiniz? Benim koddan daha hızlı çalışıyor.30.000 satırda 0,06 saniye
 
Son düzenleme:

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,791
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Merhaba Sayın dEdE,
İlginize teşekkür ederim.
Notunuzu 3. mesajda denediğimi yazmıştım. Sizin makroda da ekli resimlerdekiler oldu.
Saygılarımla
 

Ekli dosyalar

dEdE

Destek Ekibi
Destek Ekibi
Katılım
1 Temmuz 2005
Mesajlar
2,605
Excel Vers. ve Dili
Ofis 2013 TR 64 Bit
Merhaba,
"...Notunuzu 3. mesajda denediğimi yazmıştım. ..." i yerine x koymak yetmez. Dikkatle incelerseniz küçük bir ek daha var.
Liste(x, 1) = Dizi(x, 1) & " " & Dizi(x, 2)
Benim yazdığım kodun çalışması için .Net Formwork 3.5 in bilgisayarınızda yüklü olması gerekir.
Sayın @ÖmerFaruk hocamın kodu daha hızlı onu kullanmanızı öneririm.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,372
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba.
Bakalım bir de bu kodları deneyin.

Kod:
Sub Makro2()
    
Dim i As Long
Dim arr As Variant

i = Cells(Rows.Count, "A").End(3).Row

arr = Range("A1:B" & i).Value

For i = 1 To UBound(arr, 1)
    arr(i, 1) = Application.WorksheetFunction.Proper(arr(i, 1) & " " & arr(i, 2))
Next i

Range("C1").Resize(UBound(arr, 1), 1) = arr

End Sub
 
Son düzenleme:

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,791
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın Necdet Hocam,
Sorunsuz çalıştı. İlginize teşekkür ederim. Soyad büyükharf kalsa daha harika olurdu. Buna da birazdan bakacağım
Diğer makroların çalışmama nedenlerini anlayamadım. Umarım onları da bulurum.
Saygılarımla
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,372
Excel Vers. ve Dili
Ofis 365 Türkçe
Sayın Necdet Hocam,
Sorunsuz çalıştı. İlginize teşekkür ederim. Soyad büyükharf kalsa daha harika olurdu. Buna da birazdan bakacağım
Diğer makroların çalışmama nedenlerini anlayamadım. Umarım onları da bulurum.
Saygılarımla
Ben yanlış anlamışım, siz sizin kodunuza göre ayarlayabilirsiniz. Ben hem adı hem de soyadını Proper yapıldı diye görmüşüm. :)
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,791
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Rica ederim Sayın Hocam,
Saygılarımla
 
Üst