• DİKKAT

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

Alt alta olan verileri belirli miktarda yan yana sıralamak

Katılım
22 Mart 2018
Mesajlar
11
Excel Vers. ve Dili
Excel 2016
Herkese merhaba,

Doktora çalışmamda kullanacağım sıcaklık gözlemlerinin analizini yapmak için bir makroya ihtiyaç duymaktayım.

Analizini yapacağım veriler aynı ayın farklı yıllardaki değerleri. Bu değerleri yan yana getirmem gerekiyor. Kullandığım aydaki gün sayısı 31 gün, bu nedenle her 31 değer sonrası veriyi onun yanına koyabilecek bir makro yazılabilir mi?

Şimdiden teşekkür ederim, iyi forumlar.


 
Görsel yerine 200-300 satırlık küçük bir örnek dosya paylaşırsanız daha kolay çözüme ulaşabilirsiniz.
 
Veriler 4'lü blok halinde mi yan tarafa aktarılacak?
 
Yani A32:D62 arasını kesip E1 hücresine yapıştıracak. Bu şekilde devam edecek doğru mudur?
 
Merhaba,

Kod:
Sub TransposeVeri()

Dim sonsat, i, nRow As Integer

sonsat = Cells(Rows.Count, "A").End(xlUp).Row

For i = 1 To sonsat Step 31

    nRow = nRow + 1
    Range("F" & nRow) = Range("A" & i)
    Range("D" & i & ":D" & i + 30).Copy
    Cells(nRow, "G").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Transpose:=True

Next i

End Sub
 
Deneyiniz.

C++:
Option Explicit

Sub Yana_Aktar()
    Dim X As Long, Sutun As Integer
    
    Range("E:XFD").Clear
    
    Sutun = 5
    
    For X = 32 To Cells(Rows.Count, 1).End(3).Row Step 31
        Range("A" & X).Resize(31, 4).Cut Cells(1, Sutun)
        Sutun = Sutun + 4
    Next

    Columns.AutoFit

    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Deneyiniz.

C++:
Option Explicit

Sub Yana_Aktar()
    Dim X As Long, Sutun As Integer
   
    Range("E:XFD").Clear
   
    Sutun = 5
   
    For X = 32 To Cells(Rows.Count, 1).End(3).Row Step 31
        Range("A" & X).Resize(31, 4).Cut Cells(1, Sutun)
        Sutun = Sutun + 4
    Next

    Columns.AutoFit

    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
Teşekkür ederim ama tarihleri de aralarına koymadan sadece D sütununda bulunan değerleri yan yana koyabilir miyiz? Eğer olmuyorsa da bu şekilde kullanıp tarihleri elle silebilirim.
 
Merhaba,

Kod:
Sub TransposeVeri()

Dim sonsat, i, nRow As Integer

sonsat = Cells(Rows.Count, "A").End(xlUp).Row

For i = 1 To sonsat Step 31

    nRow = nRow + 1
    Range("F" & nRow) = Range("A" & i)
    Range("D" & i & ":D" & i + 30).Copy
    Cells(nRow, "G").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Transpose:=True

Next i

End Sub

Maalesef, değerleri yan yana değil alt alta koydu. Yine de çok teşekkür ederim.
 
#8 nolu mesajınızı okuyunuz lütfen...

Verdiğim kod sizin verdiğiniz cevaptaki işlemi yapıyor.
 
Veriler sizin istediğiniz şekilde de aktarılır. Fakat #4 nolu mesajımda size bir soru yöneltmiştim.

Siz cevap verdiniz. Ben bu cevaptan yeterli bilgiyi alamayınca hücre adresi vererek örneklendirdim. Sonrasında sizin cevabınıza göre kodu hazırladım.

Şimdi son talebinize göre sadece D sütunundaki veriler yan yana aktarılınca A-B-C sütununda atıl veriler kalacaktır. Bunlar ne olacak? Silinecek mi?
 
Bu kod da son mesajımda bahsettiğim işlemleri yapıyor. İsterseniz kullanabilirsiniz.

C++:
Option Explicit

Sub Yana_Aktar()
    Dim X As Long, Sutun As Integer
    
    Range("E:XFD").Clear
    
    Sutun = 5
    
    For X = 32 To Cells(Rows.Count, 1).End(3).Row Step 31
        Range("D" & X).Resize(31).Cut Cells(1, Sutun)
        Sutun = Cells(1, Columns.Count).End(1).Column + 1
    Next

    Range("A32:C" & Rows.Count).Clear

    Columns.AutoFit

    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 
Geri
Üst