Soru Çok hücreli filtrelemeyi Liste haline dökme

Reo41

Altın Üye
Katılım
24 Aralık 2013
Mesajlar
93
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 Tr / En
Altın Üyelik Bitiş Tarihi
15-11-2027
Selamlar arkadaşlar,

Ekli örnek dosyamda ayrıntılı açıklamayı yaptım.

2. sayfada çok hücreli filtrelemem mevcut, bunu 3. sayfada liste halinde, hangi sütun(adresinde) bulunduğunu görmek istiyorum. Detaylı açıklama 3. sayfada.

Dosya boyutu büyük olduğundan, yardımcı yükleme sitesi ile linki ekliyorum


Yardımlarınız bekliyorum.
 
Son düzenleme:

hasankardas

Altın Üye
Katılım
14 Ağustos 2006
Mesajlar
470
Excel Vers. ve Dili
Ofis 2021ProPlus TR 64 Bit
Altın Üyelik Bitiş Tarihi
18-01-2027
Selamlar,
dener misin, sayfada karışıklık olmasın diye hücre de virgüllü şekilde yaptım.
Kod:
Sub EslesmeleriBulVeListele()
    Dim ws2 As Worksheet, ws3 As Worksheet
    Dim i As Long, j As Long, resultRow As Long
    Dim colNames As String
    
    Set ws2 = ThisWorkbook.Sheets("Sheet2")
    Set ws3 = ThisWorkbook.Sheets("Sheet3")
    
    resultRow = 2
    
    For i = 6 To 1000
        colNames = ""
        For j = 22 To 256
            If ws2.Cells(i, j).Value = ws2.Range("Z1").Value Then
                
                colNames = colNames & ws2.Cells(1, j).Address(False, False) & ", "
            End If
        Next j
        If colNames <> "" Then
            colNames = Left(colNames, Len(colNames) - 2)
            ws3.Cells(resultRow, 2).Value = ws2.Cells(i, 2).Value ' B sütunu = 2. sütun
            ws3.Cells(resultRow, 3).Value = colNames
            resultRow = resultRow + 1
        End If
    Next i
    
    MsgBox "İşlem tamamlandı."
End Sub
Ek bilgi olarak büyük tablolar da koşullu biçimlendirme yapmak işlemcinizin yapacağı işlemi arttıracaktır. Koşullu biçimlendirme ve biçimlendirme den kaçınılmalıdır.
 

Reo41

Altın Üye
Katılım
24 Aralık 2013
Mesajlar
93
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 Tr / En
Altın Üyelik Bitiş Tarihi
15-11-2027
hasankardas bey cevabınız için teşekkürler.

Öncelikle makroyla çok fazla tecrübem olmadığından yazdığınız kodu nasıl bir şekilde ekleyeceğimi de anlatabilirmisiniz.

Ayrıca uyarınız için de teşekkürler fakat, koşullu biçimlendirme yapmadan istediğimi elde edemiyorum, en azından benim bildiğim kadarıyla. Varsa başka bir alternatif iletebilirmisiniz ayrıca.

Şimdiden teşekkür ederim
Selamlar,
dener misin, sayfada karışıklık olmasın diye hücre de virgüllü şekilde yaptım.
Kod:
Sub EslesmeleriBulVeListele()
    Dim ws2 As Worksheet, ws3 As Worksheet
    Dim i As Long, j As Long, resultRow As Long
    Dim colNames As String
   
    Set ws2 = ThisWorkbook.Sheets("Sheet2")
    Set ws3 = ThisWorkbook.Sheets("Sheet3")
   
    resultRow = 2
   
    For i = 6 To 1000
        colNames = ""
        For j = 22 To 256
            If ws2.Cells(i, j).Value = ws2.Range("Z1").Value Then
               
                colNames = colNames & ws2.Cells(1, j).Address(False, False) & ", "
            End If
        Next j
        If colNames <> "" Then
            colNames = Left(colNames, Len(colNames) - 2)
            ws3.Cells(resultRow, 2).Value = ws2.Cells(i, 2).Value ' B sütunu = 2. sütun
            ws3.Cells(resultRow, 3).Value = colNames
            resultRow = resultRow + 1
        End If
    Next i
   
    MsgBox "İşlem tamamlandı."
End Sub
Ek bilgi olarak büyük tablolar da koşullu biçimlendirme yapmak işlemcinizin yapacağı işlemi arttıracaktır. Koşullu biçimlendirme ve biçimlendirme den kaçınılmalıdır.
 

Reo41

Altın Üye
Katılım
24 Aralık 2013
Mesajlar
93
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 Tr / En
Altın Üyelik Bitiş Tarihi
15-11-2027


düzenledim
Hasankardas bey teşekkürler, bazı uygunsuzluklar mevcut,

* 302. satır ve sonrası takılı sabit kalmış sanırım.
* Olmayan hücreleri var olarak gösteriyor fazladan. Yani filtrelediğim değer mevcut satırda sadece bir hücrede var fakat 2 hücrede veya daha fazla var gösteriyor.
* Hücre isimlerinin bazılarının yanına "1" ekliyor, bazıları da sadece hücre ismi olarak geliyor. Örn; "DU1", "DX"

 

hasankardas

Altın Üye
Katılım
14 Ağustos 2006
Mesajlar
470
Excel Vers. ve Dili
Ofis 2021ProPlus TR 64 Bit
Altın Üyelik Bitiş Tarihi
18-01-2027
Sayın reo41 sizin eklediğiniz ile benim eklediğim aynı sonuçları vermiyor. tabloyu inceleme şansım yok fakat düzenleyip tekrar ekledim. evet1 ekliyordu sütun adına aslında çokta önemli değil ama düzenledim artık gelmiyor. Gelenler hücre ismi değil sütun ismi sizin ilk mesajda öyle yazıyor.

 

Reo41

Altın Üye
Katılım
24 Aralık 2013
Mesajlar
93
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 Tr / En
Altın Üyelik Bitiş Tarihi
15-11-2027
Sayın reo41 sizin eklediğiniz ile benim eklediğim aynı sonuçları vermiyor. tabloyu inceleme şansım yok fakat düzenleyip tekrar ekledim. evet1 ekliyordu sütun adına aslında çokta önemli değil ama düzenledim artık gelmiyor. Gelenler hücre ismi değil sütun ismi sizin ilk mesajda öyle yazıyor.

Hasankardas bey emeğiniz için teşekkür ederim fakat, neden olduğunu ben de anlamadım aynı sıkıntı devam ediyor. Fikir olması açısından ekran görüntüsü ekliyorum. Belli bir satırdan sonrasında takılı kalmış gibi aynı hücreleri hep gösteriyor. Bu kısımları kontrol ettiğimde filtrelediğim değer yerine 0 (sıfır) olan değerleri, filtrelediğim değermiş gibi gösteriyor.

Açıkçası ben de anlam veremedim. Bilginize.
 

Ekli dosyalar

hasankardas

Altın Üye
Katılım
14 Ağustos 2006
Mesajlar
470
Excel Vers. ve Dili
Ofis 2021ProPlus TR 64 Bit
Altın Üyelik Bitiş Tarihi
18-01-2027
Evde ve ofiste farklı excel sürümleri var denedim ikisinde de çalışıyor, şimdi denedim örneğin 2 rakamını denedim.301 satır veri getirdi. şahsımca sizin excel sürümünüz ile ilgili bir sıkıntı olabilir. yeniden yükleme veya onar ma yapar mısınız. Bir ekleme yaptım sheet3 deki verileri önce temizleyip sonra arama yapıyor..

Kod:
Sub getir()
    Dim ws2 As Worksheet, ws3 As Worksheet
    Dim i As Long, j As Long, resultRow As Long
    Dim colNames As String
    
    Set ws2 = ThisWorkbook.Sheets("Sheet2")
    Set ws3 = ThisWorkbook.Sheets("Sheet3")
    ws3.Range("B:F").ClearContents
    
    resultRow = 2
    For i = 6 To 1000
        colNames = ""
        For j = 22 To 256
            If ws2.Cells(i, j).Value = ws2.Range("Z1").Value Then
                colNames = colNames & Replace(ws2.Cells(1, j).Address(False, False), "1", "") & ", "
            End If
        Next j
        If colNames <> "" Then
            colNames = Left(colNames, Len(colNames) - 2)
            ws3.Cells(resultRow, 2).Value = ws2.Cells(i, 2).Value
            ws3.Cells(resultRow, 3).Value = colNames
            resultRow = resultRow + 1
        End If
    Next i
    
    MsgBox "İşlem tamamlandı."
End Sub
 

Reo41

Altın Üye
Katılım
24 Aralık 2013
Mesajlar
93
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 Tr / En
Altın Üyelik Bitiş Tarihi
15-11-2027
Hasankardas bey bu sefer tamam, hiçbir sıkıntı yok. Çok kez uğraştırdım sizi, elinize emeğinize sağlık. Teşekkür ederim. Elleriniz dert görmesin. Hakkınızı helal edin. Allah razı olsun.
Saygılar
 

hasankardas

Altın Üye
Katılım
14 Ağustos 2006
Mesajlar
470
Excel Vers. ve Dili
Ofis 2021ProPlus TR 64 Bit
Altın Üyelik Bitiş Tarihi
18-01-2027
Hasankardas bey bu sefer tamam, hiçbir sıkıntı yok. Çok kez uğraştırdım sizi, elinize emeğinize sağlık. Teşekkür ederim. Elleriniz dert görmesin. Hakkınızı helal edin. Allah razı olsun.
Saygılar
Est. Sorun çözüldüyse ne mutlu. Merak ettiğim bu tablo ile ne yapmak istediniz, Hisselerde ne gibi işinize yarıyor.
 

Reo41

Altın Üye
Katılım
24 Aralık 2013
Mesajlar
93
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 Tr / En
Altın Üyelik Bitiş Tarihi
15-11-2027

Reo41

Altın Üye
Katılım
24 Aralık 2013
Mesajlar
93
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 Tr / En
Altın Üyelik Bitiş Tarihi
15-11-2027
Tekrar merhaba Hasankardas bey, yeni bir ihtiyaç/revize durumu oluştu. Tekrar yardımcı olabilirmisiniz.

- 1. sayfada takip etmem gereken, BA sütunundan itibaren ardışık gelen aynı rakamlar. Örn; filtrelediğim değer "1" olsun, BA ve BC sütünü veya başka bir ardışık sütun. 2 ila 10 defaya kadar ardışık gelme ihtimali var.

- 1. ve 2. sayfada Bu sütünların ikinci satırına 1-2-3... diye numara verdim. Sizin hazırladığınız 3. sayfada hücre ismi değil de bu rakamları görme şansımız varmı? Örn; "AO, BE" diye değil de, "3, 7, 9.." vs diye.

- Burda asıl amaç ardışık olanları kontrol etmem, sütun isminden ziyade rakam olarak daha kolay olacak. İlkinde bu şekilde istedim kusura bakmayın ama, kontrol edince, bu şekilde ardışık sütun takibi yapma zorluğunu ortadan kaldırıp, rakamla daha kolay olacağın düşünüyorum.

- Ayrıca ardışık olan sütunları sadece 2. sayfada renklendirmek veya başka türlü belirgin hale getirebilirmiyiz. (2. sayfada 2. satırlara yazdığım numara olan hücreleri) belirgin hale getirmek.

- Artı ve son olarak 3. sayfada 1. satır boş ve filtreleme eklemek istedim, oldu fakat her "GETİR" işlemini yaptıktan sonra filtreleme kalkıyor. Sabitleyebilirmiyiz.

Şimdiden teşekkür ederim.

 
Son düzenleme:

hasankardas

Altın Üye
Katılım
14 Ağustos 2006
Mesajlar
470
Excel Vers. ve Dili
Ofis 2021ProPlus TR 64 Bit
Altın Üyelik Bitiş Tarihi
18-01-2027
Merhaba,
Size yardımcı oldum fakat siz sorumu geçiştirdiniz. Son kez yardımcı oluyorum.
Sorunuz da 1 ci sorunuzu düzenledim, 2 ci sayfada bir ardışıklık olmadığı için işlem yapmadım. diğer sorunuza da işlem yapmadım çünkü numaralandırma öncesinde de veriler var..

 

Reo41

Altın Üye
Katılım
24 Aralık 2013
Mesajlar
93
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 Tr / En
Altın Üyelik Bitiş Tarihi
15-11-2027
Merhaba,
Size yardımcı oldum fakat siz sorumu geçiştirdiniz. Son kez yardımcı oluyorum.
Sorunuz da 1 ci sorunuzu düzenledim, 2 ci sayfada bir ardışıklık olmadığı için işlem yapmadım. diğer sorunuza da işlem yapmadım çünkü numaralandırma öncesinde de veriler var..
Estağfurullah, geçiştirmek gibi birşey düşünmedim. Bildiğim kadarıyla en net ve kısa cevabı verdim, çünkü ben borsadan hiç anlamam. Çok yakın bir arkadaşıma yardımcı olmaya çalışıyorum. O borsayla ilgileniyor detaylı olarak, gerçekten hiç de merak etmediğim için sormadım. Ama ayrıntılı olarak sormak istediğiniz birşey varsa, bana açıklayıcı sorarsanız ben de ona sorup size cevabını memnuniyetle yazarım.
Yanlış veya eksik bir ifade kullandıysam özür dilerim.
 

Reo41

Altın Üye
Katılım
24 Aralık 2013
Mesajlar
93
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 Tr / En
Altın Üyelik Bitiş Tarihi
15-11-2027
Varmı yardımcı olabilecek
 

Reo41

Altın Üye
Katılım
24 Aralık 2013
Mesajlar
93
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 Tr / En
Altın Üyelik Bitiş Tarihi
15-11-2027
Merhaba, dener misiniz;

Kod:
Sub getir()
    Dim ws2 As Worksheet, ws3 As Worksheet
    Dim i As Long, j As Long, resultRow As Long
    Dim colNames As String
    Dim isPreviousMatch As Boolean
    Set ws2 = ThisWorkbook.Sheets("Sheet2")
    Set ws3 = ThisWorkbook.Sheets("Sheet3")
    ws3.Range("B2:F1000").ClearContents
    ws2.Range(ws2.Cells(2, 22), ws2.Cells(2, 256)).Interior.ColorIndex = xlNone
    resultRow = 2
    For i = 6 To 1000
        colNames = ""
        isPreviousMatch = False
        For j = 22 To 256
            If ws2.Cells(i, j).Value = ws2.Range("Z1").Value Then
                colNames = colNames & ws2.Cells(2, j).Value & ", "
                ws2.Cells(2, j).Interior.Color = RGB(255, 255, 0)
                If isPreviousMatch Then
                    ws2.Cells(2, j).Interior.Color = RGB(0, 255, 0)
                    ws2.Cells(2, j - 1).Interior.Color = RGB(0, 255, 0)
                End If
                isPreviousMatch = True
            Else
                isPreviousMatch = False
            End If
        Next j
        If colNames <> "" Then
            colNames = Left(colNames, Len(colNames) - 2)
            ws3.Cells(resultRow, 2).Value = ws2.Cells(i, 2).Value
            ws3.Cells(resultRow, 3).Value = colNames
            resultRow = resultRow + 1
        End If
    Next i
    MsgBox "İşlem tamamlandı."
End Sub

pitchoute hocam merhaba, teşekkür ederim. Emeğinize sağlık. Tüm istediklerim olmuş. Sadece bazı sütunlarda ardışık olmasına rağmen kimi yerde çift hücreyi renklendirmiş, kimi yerde tek hücreyi, bunu anlayamadım, aynı sütunda 1 den fazla satırda veya yanındaki sütunlarla ortak ardışıklık olamasından dolayı gibimi?
Elinize emeğinize sağlık
 

Reo41

Altın Üye
Katılım
24 Aralık 2013
Mesajlar
93
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 Tr / En
Altın Üyelik Bitiş Tarihi
15-11-2027
Durum aynı sayın pitchoute.

Artı olarak Sheet2 de BA'dan önceki filtrelenen değerlerin çıkmaması mümkün mü? Sadece BA ve sonrasını Sheet 3'de görmek istiyorum(yani "0"lar çıkmasın)

Teşekkürler
 

Reo41

Altın Üye
Katılım
24 Aralık 2013
Mesajlar
93
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 Tr / En
Altın Üyelik Bitiş Tarihi
15-11-2027
pitchoute hocam merhaba, şuan yine bazı yerlerde tek renklendirme var ama çok da önemli değil, en azından boyama yapıp orda ardışık olduğunu belirtiyor, bu şekilde de kontrol edebilirim. Dosyanın bu şekilde istediğim hale gelmesinde emeği olan @hasankardas bey ve sizlere teşekkür ederim. Elinize emeğinize sağlık. İyiki varsınız. Allah razı olsun
 
Son düzenleme:

Reo41

Altın Üye
Katılım
24 Aralık 2013
Mesajlar
93
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 Tr / En
Altın Üyelik Bitiş Tarihi
15-11-2027
@pitchoute hocam tekrar merhaba,

dosya ile ilgili bir revize isteğim var. Yardımcı olabilirmisiniz.

Sheet2'de Z1 hücresindeki filtrelenecek değere ek olarak AB1 hücresine bir filtreleme değeri daha ekledim. Burda istediğim,

1 - Sheet3'de getir dediğimizde Z1 hücresindeki değerler için istediklerimizi getiriyordu, aynı şekilde AB1 hücresindeki değer için de istediklerimizi listeleyebilimek istiyorum (Mümkünse yine Sheet3'de H sütunundan başlayabilir, mümkün değilse Sheet4 de olabilir.)

2- Tekrar bu iki değerin ayriyetten, sadece ardışık olanlarını Sheet3'deki gibi listelenmesini istiyorum(Yine BA sütunundan itibaren olacak). Yeni bir sayfada. Ardışıklık şartı; 1ardışık ve 2 ardışık olanlar. Örneğin 91,92 ve/veya 91,93.

İnşallah anlatabilmişimdir. Şimdiden yardımınız için teşekkürler.

 

Reo41

Altın Üye
Katılım
24 Aralık 2013
Mesajlar
93
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 Tr / En
Altın Üyelik Bitiş Tarihi
15-11-2027
Varmı yardımcı olabilecek?
 
Üst