• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Tek sütun veriyi çoklu sütun ayırma

Katılım
29 Mart 2023
Mesajlar
3
Excel Vers. ve Dili
2019-Türkçe
Herkese Merhabalar,

300 satırlık tek sütun veri var. Bu verileri 11 li sütun haline her satırda bir boşluk bırakarak alt alta ayırmak istiyorum.

A sütununu kullanıyor olalım; veri A1 den A300(bu değişkenlik gösteriyor farklı dosyada farklı olacak) e kadar.

A1-A11
boşluk
A12-A22
boşuk
A23-A33
..... (Sütun sonuna kadar)

Teşekkürler
 
Son düzenleme:
Selamlar
Sitemize hoş geldiniz.
Yapmak istediğinizi gerçek bilgilerinizi içermeyen örnek bir dosya da manuel olarak hazırlayıp harici dosya yükleme sitelerinden birine ekleyerek burada Link paylaşırsanız daha çabuk cevaplar alırsınız.

iyi çalışmalar
 
Kod:
Sub test()
    Dim lst, dizi, sat, i&, ii%, setSay%, idx&
    With Sheets("SmartWiring")
        .Range("B:L").ClearContents
        lst = .Range("A1:A" & .Cells(Rows.Count, 1).End(3).Row).Value
        sat = 1
        setSay = WorksheetFunction.RoundUp(UBound(lst) / 11, 0)
        ReDim dizi(1 To setSay * 2, 1 To 11)
        For i = 1 To setSay * 11 Step 11
            For ii = 1 To 11
                idx = i + ii - 1
                If idx <= UBound(lst) Then
                    dizi(sat, ii) = lst(idx, 1)
                End If
            Next ii
            sat = sat + 2
        Next i
        .Range("B1").Resize(sat - 2, 11).Value = dizi
    End With
End Sub
 
Deneyiniz.
Kod:
Sub OnbirliListeOlustur()
Application.ScreenUpdating = False
Dim rng As Range
Dim I As Long
    
    Set rng = Range("A1")
    While rng.Value <> ""
        I = I + 1
        rng.Resize(11).Copy
        Range("B" & I).PasteSpecial Transpose:=True
        Set rng = rng.Offset(11)
        
    Wend
    rng.EntireColumn.Delete
sonSatir = ActiveSheet.Cells(ActiveSheet.Rows.Count, "A").End(xlUp).Row
ActiveSheet.Range("A1").Select
For I = 1 To sonSatir - 1
    ActiveCell.Offset(1, 0).EntireRow.Insert
    ActiveCell.Offset(2, 0).Select
Next I
Application.ScreenUpdating = True
MsgBox "İşlem tamamlandı..."
End Su
 
Hocam çok teşekkür ederim çalıştırdık. Umarım her şey gönlünüzce olur.
 
Alternatif olsun,

Sütun adedini ve satır atlama sayısını siz kendinize göre düzenleyin.

Kod:
Public Sub YatayGrup()

Dim ar1 As Variant, _
    ar2 As Variant, _
    i   As Long, _
    j   As Long, _
    sAd As Integer, _
    rAd As Integer, _
    k   As Integer

sAd = 11 'Sütun Adedi
rAd = 2 'Satır Atlama Adedi

ar1 = Range("A1").CurrentRegion.Value

i = Int(UBound(ar1, 1) / sAd) * rAd + 1

ReDim ar2(1 To i, 1 To sAd)

k = 1
j = 1

For i = 1 To UBound(ar1, 1)
    ar2(j, k) = ar1(i, 1)
    k = k + 1
    If k > sAd Then
        k = 1
        j = j + rAd
    End If
Next i

With Range("C1")
    .CurrentRegion.ClearContents
    .Resize(UBound(ar2, 1), UBound(ar2, 2)) = ar2
End With

End Sub
 
Geri
Üst