Verileri Ayırma

Katılım
31 Ağustos 2020
Mesajlar
5
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
31-12-2022
Arkadaşlar merhaba;
Değerleri karışık olarak girdiğim bir listem var ve ben bu listeden verileri ayırarak çekmek istiyorum. Forumda benzer örnekleri inceledim ama istediğimi yapamadım. Ekli dosyada da ne yapmak istediğimi anlattım. İlgilenen arkadaşlara şimdiden teşekkür ederim.
 

Ekli dosyalar

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Liste sayfasını KOD bölümüne direkt yapıştırın.
Not: Aynı olaya ait farklı kod varsa birleştirmeniz ya da silmeniz önerilir.

C++:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Sütun As Integer
Dim i As Integer
Dim k As Integer

    If Intersect(Target, Range("B:B")) Is Nothing Then Exit Sub
    If Selection.Cells.Count > 1 Then Exit Sub
    Sat = Target.Row
    Select Case Target
        Case "KÜÇÜK"
            Sütun = 5
        Case "ORTA"
            Sütun = 8
        Case "BÜYÜK"
            Sütun = 11
        Case Else
            MsgBox "Ebat hatalı girilmiş" & vbCrLf & "Doğru Ebat : KÜÇÜK - ORTA - BÜYÜK"
            GoTo Son
    End Select
    If WorksheetFunction.CountA(Range("C" & Target.Row, "E" & Target.Row)) > 1 Then
        MsgBox "Dolu satırda ebat tanımlanamaz."
        GoTo Son
    End If
    For i = 4 To WorksheetFunction.Count(Worksheets("DATA").Range("A:A")) + 3
        Select Case Left(Worksheets("DATA").Range("B" & i), 1)
            Case "A"
                Süt = Sütun + 0
            Case "B"
                Süt = Sütun + 1
            Case Else
                Süt = Sütun + 2
        End Select
        If Worksheets("DATA").Cells(i, Süt) <> "" Then
            Application.EnableEvents = False
            k = k + 1
            Range("C" & Target.Row + k) = Worksheets("DATA").Range("B" & i)
            Range("D" & Target.Row + k) = Worksheets("DATA").Range("C" & i)
            Range("E" & Target.Row + k) = Worksheets("DATA").Range("D" & i)
            Application.EnableEvents = True
        End If
    Next i
    MsgBox "İşlem Tamam"
    Range("B" & Target.Row + k + 1).Activate
    Exit Sub
Son:
    Application.EnableEvents = False
    Target = ""
    Application.EnableEvents = True
End Sub
 
Katılım
31 Ağustos 2020
Mesajlar
5
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
31-12-2022
Sayın @NextLevel , size çok teşekkür ederim, emeğinize sağlık. Sorunsuz bir şekilde çalıştı.
 
Katılım
31 Ağustos 2020
Mesajlar
5
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
31-12-2022
Bir şey daha sormak istiyorum merakımdan, tablodaki ebat kısmına aradığım değerler haricinde bir şey yazdığımda o değerin de gözükmesi için kodda nereyi değiştirmemiz gerekir?
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Aradığınız Değer ORTA-KÜÇÜK-BÜYÜK değil mi?
kastınız nedir?
 
Katılım
31 Ağustos 2020
Mesajlar
5
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
31-12-2022
Evet aradığım değerler onlar, sadece merak ettiğimden soruyorum. örneğin ebat kısmına "çok büyük" yazdığımda değer aramasın ama "çok büyük " yazısı ebat kısmında gözüksün şeklinde de olabilir mi?
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Sadece kodun aşağıdaki kısmını değiştirin

Case Else
MsgBox "Ebat hatalı girilmiş" & vbCrLf & "Doğru Ebat : KÜÇÜK - ORTA - BÜYÜK"
Exit Sub
End Select
 
Katılım
31 Ağustos 2020
Mesajlar
5
Excel Vers. ve Dili
2016
Altın Üyelik Bitiş Tarihi
31-12-2022
Vakit ayırıp ilgilendiğiniz için tekrar teşekkür ederim.
 
Üst