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

llllenzollll

Altın Üye
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
42,256
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Formül yerine makro ile çözüm daha kolay olacaktır.
 

llllenzollll

Altın Üye
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
42,256
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
 

llllenzollll

Altın Üye
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.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,256
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bir ayar yapmanıza gerek yoktur.
 
Üst