Hücre içindeki yatay olan kelimeleri sıralamak.

Katılım
17 Nisan 2016
Mesajlar
85
Excel Vers. ve Dili
Excel 2010
Altın Üyelik Bitiş Tarihi
27-12-2024
Merhaba üstadlar, excel tablosunda malın cinsi ve bölümünde yatay olarak alt alta sıralamak istiyorum.Formül ile yardımcı olabilirseniz çok teşekkür ederim.
 

Ekli dosyalar

Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,373
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Formül yerine makro ile çözüm daha kolay olacaktır.
 
Katılım
17 Nisan 2016
Mesajlar
85
Excel Vers. ve Dili
Excel 2010
Altın Üyelik Bitiş Tarihi
27-12-2024
makroda olabilir.Anlamaya çalışırım.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,373
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Yeni liste Sayfa2'ye aktarılır.

Deneyiniz.

C++:
Option Explicit

Sub Malzemeleri_Ayri_Satirlara_Aktar()
    Dim S1 As Worksheet, S2 As Worksheet, Son As Long
    Dim X As Long, Say As Long, Y As Byte, Malzeme As Variant
    Dim Veri As Variant, Z As Byte, Adet As Variant, Zaman As Double
    
    Zaman = Timer
    
    Set S1 = Sheets("Sayfa1")
    Set S2 = Sheets("Sayfa2")
    
    S2.Range("B5:J" & S2.Rows.Count).Clear
    
    Son = S1.Cells(S1.Rows.Count, 2).End(3).Row
    If Son = 5 Then Son = 6
    
    Veri = S1.Range("B5:J" & Son).Value
    
    ReDim Liste(1 To Rows.Count, 1 To 9)
    
    For X = LBound(Veri, 1) To UBound(Veri, 1)
        If Veri(X, 1) <> "" Then
            Say = Say + 1
            For Y = 1 To 9
                Liste(Say, Y) = Veri(X, Y)
            Next
            
            If InStr(1, Veri(X, 6), ",") > 0 Then
                Malzeme = Split(Veri(X, 6), ",")
                Adet = Split(Veri(X, 7), ",")
                For Z = LBound(Malzeme) To UBound(Malzeme)
                    Liste(Say, 6) = Malzeme(Z)
                    Liste(Say, 7) = Adet(Z)
                    If Z = UBound(Malzeme) Then Exit For
                    Say = Say + 1
                Next
            End If
        End If
    Next
    
    If Say > 0 Then
        S2.Range("B5").Resize(Say, 9) = Liste
        S2.Range("B5").Resize(Say, 9).Borders.LineStyle = 1
        S2.Range("I5").Resize(Say, 2).NumberFormat = "#,##0.00"
        S2.Columns.AutoFit
        MsgBox "İşleminiz tamamlanmıştır." & Chr(10) & Chr(10) & _
               "İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye", vbInformation
    Else
        MsgBox "Düzenlenecek veri bulunamadı!" & Chr(10) & Chr(10) & _
               "İşlem süresi ; " & Format(Timer - Zaman, "0.00") & " Saniye", vbExclamation
    End If
    
    Set S1 = Nothing
    Set S2 = Nothing
End Sub
 
Katılım
17 Nisan 2016
Mesajlar
85
Excel Vers. ve Dili
Excel 2010
Altın Üyelik Bitiş Tarihi
27-12-2024
Üstad çok teşekkür ederim eline emeğine bilgini sağlık.Bu arada uzun listelerde satır sayısında herhangi bir ayarlama yapmam gerekiyormu.
 
Üst