Excel de Art arda sıralama

Katılım
19 Aralık 2022
Mesajlar
2
Excel Vers. ve Dili
tr-2019 ver2211
Arkadaşlar öncelikle merhabalar yapmak istediğim şey çok basit. A sütünü verileri ile B sütünü verilerini C ye ard arda ekleyerek çoğaltma olay şu. A sütununda Obj1, Obj2, Obj3, Obj4 olarak alt satırlara doğru uzuyor. B de ise Prop1 Prop2 Prop3 Prop4 var ben bunları C sütununa şu şekilde yazdırmak istiyorum. Obj1Prop1, Obj1Prop2, Obj1Prop3 Obj1Prop4, Obj2Prop1, Obj2Prop2, Obj2Prop3, Obj2Prop4 şeklinde ilerlemek istiyorum.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,371
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Aşağıdaki kodları bir modüle kopyalayıp deneyiniz.
Verilerde başlık yok, dolayısıyla birinci satırdan itibaren değerlendirildi.

Kod:
Public Sub Birlestir()

Dim ar1 As Variant, _
    ar2 As Variant, _
    ar3 As Variant, _
    i   As Long, _
    j   As Long, _
    k   As Long
    
i = Cells(Rows.Count, "A").End(3).Row
ar1 = Range("A1:A" & i).Value
i = Cells(Rows.Count, "B").End(3).Row
ar2 = Range("B1:B" & i).Value

ReDim ar3(1 To UBound(ar1) * UBound(ar2))

For i = LBound(ar1) To UBound(ar2)
    For j = LBound(ar2, 1) To UBound(ar2, 1)
        k = k + 1
        ar3(k) = ar1(i, 1) & ar2(j, 1)
    Next j
Next i

Range("C1").Resize(UBound(ar3), 1) = Application.WorksheetFunction.Transpose(ar3)

MsgBox "İşlem Tamam...."

End Sub
 
Katılım
19 Aralık 2022
Mesajlar
2
Excel Vers. ve Dili
tr-2019 ver2211
Merhaba,

Aşağıdaki kodları bir modüle kopyalayıp deneyiniz.
Verilerde başlık yok, dolayısıyla birinci satırdan itibaren değerlendirildi.

Kod:
Public Sub Birlestir()

Dim ar1 As Variant, _
    ar2 As Variant, _
    ar3 As Variant, _
    i   As Long, _
    j   As Long, _
    k   As Long
   
i = Cells(Rows.Count, "A").End(3).Row
ar1 = Range("A1:A" & i).Value
i = Cells(Rows.Count, "B").End(3).Row
ar2 = Range("B1:B" & i).Value

ReDim ar3(1 To UBound(ar1) * UBound(ar2))

For i = LBound(ar1) To UBound(ar2)
    For j = LBound(ar2, 1) To UBound(ar2, 1)
        k = k + 1
        ar3(k) = ar1(i, 1) & ar2(j, 1)
    Next j
Next i

Range("C1").Resize(UBound(ar3), 1) = Application.WorksheetFunction.Transpose(ar3)

MsgBox "İşlem Tamam...."

End Sub
Ellerinize sağlık basit formüller ile yapılacağını düşünmüştüm birçok yöntem denemiştim olmadı teşekkürler. ekstra olarak verilerin kendilerinide tek tek yazdırıyor onları filtreleme yaparak silmek gerekecek sadece.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,371
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,
Formülle de yapılabilinir belki ama o kadar usta değilim formüllerde.
Verileri de yazdırıyor demişsiniz, onu anlamadım.
 
Üst