Verilen Sütunlardaki Verileri Alt Alta Sırala - Microsoft Excel


Dizi aracılığıyla verilen sütun isimlerinden hareketle ilgili sütundaki verileri alır ve K sütununa (yazdırılacak sütun değiştirilebilir) yazdırılır.

Kod


Option Explicit

Sub VerilenSutunlardakiVerileriAltAltaSirala()
    Dim dizi    As Variant
    Dim deger   As Variant
    Dim sayac   As Long
    Dim sutunNo As Integer
    Dim i       As Long
    
    sayac = 1
    dizi = Array("B", "C", "E")
    
    For Each deger In dizi
        sutunNo = Cells(1, deger).Column
        
        Range("A1").Offset(0, sutunNo - 1).Select
        
        For i = 1 To Range("A1048576").Offset(0, sutunNo).End(xlUp).Row
            Range("K" & sayac) = Range("A" & i).Offset(0, sutunNo)
            sayac = sayac + 1
        Next
    Next
End Sub

Kod (Açıklamalı)


Option Explicit

Sub VerilenSutunlardakiVerileriAltAltaSirala()
    
    '--------------------------------------------------
    'Değişkenler
    '--------------------------------------------------
    Dim dizi    As Variant
    Dim deger   As Variant
    Dim sayac   As Long
    Dim sutunNo As Integer
    Dim i       As Long
    
    '--------------------------------------------------
    'Yazdırma işlemini yapacağımız sütuna
    'verileri sırasıyla ekleyebilmek için
    'bu değişkenden yararlan.
    '--------------------------------------------------
    sayac = 1
    
    '--------------------------------------------------
    'Listeleme işlemine dahil olmasını
    'istediğimiz sütunları dizi olarak tanımla.
    '--------------------------------------------------
    dizi = Array("B", "C", "E")
    
    '--------------------------------------------------
    'Dizideki her sütun için döngü çalıştır.
    '--------------------------------------------------
    For Each deger In dizi
        
        '--------------------------------------------------
        'Sütunun sayı karşılığını öğren.
        '--------------------------------------------------
        sutunNo = Cells(1, deger).Column
        
        '--------------------------------------------------
        'Offset metodunu kullanarak ilgili sütunu
        'seç. Referansı soldan yapıyoruz. Ben sütun
        'numarasını biliyorum. Eğer A sütunundan
        'referansla başlayıp buradan sağa doğru
        'kaydırma yaparak ilerlersem her seferinde
        'dizideki ilgili sütunu seçebilirim.
        '--------------------------------------------------
        Range("A1").Offset(0, sutunNo - 1).Select
        
        '--------------------------------------------------
        'Sütundaki verileri döngü ile K sütununda listelet.
        '--------------------------------------------------
        For i = 1 To Range("A1048576").Offset(0, sutunNo).End(xlUp).Row
            Range("K" & sayac) = Range("A" & i).Offset(0, sutunNo)
            sayac = sayac + 1
        Next
    Next
End Sub

Etiketler
microsoft excel açıklamalı içerik microsoft excel vba