Hücre değerine göre filitreleme yapmak.!!

VBA Makrolar ile ilgili sormak istedikleriniz, yapmak istedikleriniz hakkında yardım alabileceğiniz bölümdür.

Hücre değerine göre filitreleme yapmak.!!

İleti#1)  sinan05 » 16 Tem 2019 11:23

İyi günler, iyi çalışmalar. Kayıtlar adlı dosyamda 11. Satırdan başlayan veriler var. A10 hücresine filitre ekledim, A11 ve sonrası hücrelerde 1. Taksit, 2. Taksit diye devam eden veriler var. Benim ricam sizlerden A9 hücresine yazdığım veriye göre makro filitreleme yapsın. Örneğin, A9 hücresine 4.taksit yazınca sadece 4.taksit yazan satırlar kalcak şekilde filitreleme yapsın. Yardımlarınız için şimdiden teşekkürler.
Kullanıcı avatarı
sinan05
Siteye Alışmış
 
Kayıt: 25 Arl 2017 19:37
Meslek: ticari-binek oto alım satım.
Yaş: 37
İleti: 157
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: istanbul-bakırköy

Cevap: Hücre değerine göre filitreleme yapmak.!!

İleti#2)  Mesut Topal » 16 Tem 2019 14:03

.Cells(9, 1).Resize(, 100).AutoFilter Field:=1, Criteria1:=.Cells(9, 1), Operator:=xlFilterValues

bunu kullanabilirsiniz.
Kullanıcı avatarı
Mesut Topal
Siteye Alışmış
 
Kayıt: 15 Eyl 2016 19:19
Meslek: Matematik Öğretmeni
Yaş: 33
İleti: 460
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Samsun/Ladik

Cevap: Cevap: Hücre değerine göre filitreleme yapmak.!!

İleti#3)  sinan05 » 16 Tem 2019 15:33

Mesut Topal yazdı:.Cells(9, 1).Resize(, 100).AutoFilter Field:=1, Criteria1:=.Cells(9, 1), Operator:=xlFilterValues

bunu kullanabilirsiniz.


Mesut topal Hocam çok teşekkür ederim Allah Razı Olsun. Peki A9 hücresine 1.taksit,2.taksit diye birden fazla veri yazsam hepsini getirme imkanı varmı.
Kullanıcı avatarı
sinan05
Siteye Alışmış
 
Kayıt: 25 Arl 2017 19:37
Meslek: ticari-binek oto alım satım.
Yaş: 37
İleti: 157
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: istanbul-bakırköy

Cevap: Hücre değerine göre filitreleme yapmak.!!

İleti#4)  Mesut Topal » 16 Tem 2019 15:51

Allah, cümlemizden razı olsun.

Kod: Tümünü seç
Sub filtrele()
with sheets("Sayfa1")
ReDim taksitler(1 To 100)
k = 0
For i = 1 To 100
    If Application.WorksheetFunction.CountIf(.Cells(9, 1), "*" & i & "*") > 0 Then
    k = k + 1
    taksitler(k) = i & ".Taksit"
Next i
ReDim Preserve taksitler(1 To k)
.Cells(9, 1).Resize(, 100).AutoFilter Field:=1, Criteria1:=Array(taksitler), Operator:=xlFilterValues
end with
End Sub


Bu kod ile yapabilirsiniz.
Kullanıcı avatarı
Mesut Topal
Siteye Alışmış
 
Kayıt: 15 Eyl 2016 19:19
Meslek: Matematik Öğretmeni
Yaş: 33
İleti: 460
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Samsun/Ladik

REKLAM
Excel Logo XML Oluşturucu
Logo Object Designer ile Uyarlama

Cevap: Cevap: Hücre değerine göre filitreleme yapmak.!!

İleti#5)  sinan05 » 16 Tem 2019 16:21

Mesut Topal yazdı:Allah, cümlemizden razı olsun.

Kod: Tümünü seç
Sub filtrele()
with sheets("Sayfa1")
ReDim taksitler(1 To 100)
k = 0
For i = 1 To 100
    If Application.WorksheetFunction.CountIf(.Cells(9, 1), "*" & i & "*") > 0 Then
    k = k + 1
    taksitler(k) = i & ".Taksit"
Next i
ReDim Preserve taksitler(1 To k)
.Cells(9, 1).Resize(, 100).AutoFilter Field:=1, Criteria1:=Array(taksitler), Operator:=xlFilterValues
end with
End Sub


Bu kod ile yapabilirsiniz.


MESUT Hocam çok güzel oldu sağolun fakat 12.taksit yazınca 1.taksitleri de getiriyor, aynı şekilde 10 yazınca 1 i de getiriyor. anlayamadım.
Kullanıcı avatarı
sinan05
Siteye Alışmış
 
Kayıt: 25 Arl 2017 19:37
Meslek: ticari-binek oto alım satım.
Yaş: 37
İleti: 157
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: istanbul-bakırköy

Cevap: Hücre değerine göre filitreleme yapmak.!!

İleti#6)  Mesut Topal » 16 Tem 2019 18:02

Evet, o kısım kodu yazdıktan sonra benimde aklıma gelmişti.
Şimdi düzeltiyorum.
Kullanıcı avatarı
Mesut Topal
Siteye Alışmış
 
Kayıt: 15 Eyl 2016 19:19
Meslek: Matematik Öğretmeni
Yaş: 33
İleti: 460
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Samsun/Ladik

REKLAM
ETA - Excel Konsolide Raporlama
ETA Excel Personel Entegre Raporu

Cevap: Hücre değerine göre filitreleme yapmak.!!

İleti#7)  Mesut Topal » 16 Tem 2019 18:13

Kod: Tümünü seç
Sub filtrele()
With Sheets("Sayfa1")
    ReDim taksitler(1 To 100)
        k = 0
        If Application.WorksheetFunction.CountIf(.Cells(9, 1), "1.taksit" & "*") > 0 Then
            taksitler(1) = "1.taksit"
            For i = 2 To 100
                If Application.WorksheetFunction.CountIf(.Cells(9, 1), "*" & "," & i & "." & "*") > 0 Then
                k = k + 2
                taksitler(k) = i & ".Taksit"
            Next i
        Else
            For i = 1 To 100
                If Application.WorksheetFunction.CountIf(.Cells(9, 1), "*" & "," & i & "." & "*") > 0 Then
                k = k + 1
                taksitler(k) = i & ".Taksit"
            Next i
        End If
    ReDim Preserve taksitler(1 To k)
    .Cells(9, 1).Resize(, 100).AutoFilter Field:=1, Criteria1:=Array(taksitler), Operator:=xlFilterValues
End With
End Su


Bi dener misiniz.
Kullanıcı avatarı
Mesut Topal
Siteye Alışmış
 
Kayıt: 15 Eyl 2016 19:19
Meslek: Matematik Öğretmeni
Yaş: 33
İleti: 460
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Samsun/Ladik

Cevap: Cevap: Hücre değerine göre filitreleme yapmak.!!

İleti#8)  sinan05 » 16 Tem 2019 19:56

Mesut Topal yazdı:
Kod: Tümünü seç
Sub filtrele()
With Sheets("Sayfa1")
    ReDim taksitler(1 To 100)
        k = 0
        If Application.WorksheetFunction.CountIf(.Cells(9, 1), "1.taksit" & "*") > 0 Then
            taksitler(1) = "1.taksit"
            For i = 2 To 100
                If Application.WorksheetFunction.CountIf(.Cells(9, 1), "*" & "," & i & "." & "*") > 0 Then
                k = k + 2
                taksitler(k) = i & ".Taksit"
            Next i
        Else
            For i = 1 To 100
                If Application.WorksheetFunction.CountIf(.Cells(9, 1), "*" & "," & i & "." & "*") > 0 Then
                k = k + 1
                taksitler(k) = i & ".Taksit"
            Next i
        End If
    ReDim Preserve taksitler(1 To k)
    .Cells(9, 1).Resize(, 100).AutoFilter Field:=1, Criteria1:=Array(taksitler), Operator:=xlFilterValues
End With
End Su


Bi dener misiniz.


Mesut Hocam eksik olmayınız çok teşekkürler. Pc ye ulaştığım anda deneyim size yazıcam hayırlı akşamlar
Kullanıcı avatarı
sinan05
Siteye Alışmış
 
Kayıt: 25 Arl 2017 19:37
Meslek: ticari-binek oto alım satım.
Yaş: 37
İleti: 157
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: istanbul-bakırköy

Cevap: Cevap: Hücre değerine göre filitreleme yapmak.!!

İleti#9)  sinan05 » 16 Tem 2019 20:29

Mesut Topal yazdı:
Kod: Tümünü seç
Sub filtrele()
With Sheets("Sayfa1")
    ReDim taksitler(1 To 100)
        k = 0
        If Application.WorksheetFunction.CountIf(.Cells(9, 1), "1.taksit" & "*") > 0 Then
            taksitler(1) = "1.taksit"
            For i = 2 To 100
                If Application.WorksheetFunction.CountIf(.Cells(9, 1), "*" & "," & i & "." & "*") > 0 Then
                k = k + 2
                taksitler(k) = i & ".Taksit"
            Next i
        Else
            For i = 1 To 100
                If Application.WorksheetFunction.CountIf(.Cells(9, 1), "*" & "," & i & "." & "*") > 0 Then
                k = k + 1
                taksitler(k) = i & ".Taksit"
            Next i
        End If
    ReDim Preserve taksitler(1 To k)
    .Cells(9, 1).Resize(, 100).AutoFilter Field:=1, Criteria1:=Array(taksitler), Operator:=xlFilterValues
End With
End Su


Bi dener misiniz.


MESUT Hocam şu en sonda ki kod hata veriyor: ReDim Preserve taksitler(1 To k)
birde af buyrun end if leri koymayı unutmuşsunuz sanırım :)
Kullanıcı avatarı
sinan05
Siteye Alışmış
 
Kayıt: 25 Arl 2017 19:37
Meslek: ticari-binek oto alım satım.
Yaş: 37
İleti: 157
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: istanbul-bakırköy

Cevap: Hücre değerine göre filitreleme yapmak.!!

İleti#10)  Mesut Topal » 17 Tem 2019 03:35

Bu sefer tamamdır.
Örnek dosya olmadığı için kodları denememiştim.
Kendim bi tane hazırladım.

Kod: Tümünü seç
Sub filtrele()
With Sheets("Sayfa1")
    .AutoFilterMode = False
    ReDim taksitler(1 To 100)
        k = 1
        For i = 1 To 100
            If Application.WorksheetFunction.CountIf(.Cells(9, 1), "*" & "," & i & "." & "*") > 0 Then
                k = k + 1
                taksitler(k) = i & ".Taksit"
            End If
        Next i
        taksitler(1) = Val(.Cells(9, 1)) & ".Taksit"
    ReDim Preserve taksitler(1 To k)
    .Cells(9, 1).Resize(, 100).AutoFilter Field:=1, Criteria1:=Array(taksitler), Operator:=xlFilterValues
End With
End Sub
Bu iletideki ekleri görmek için gerekli yetkilere sahip değilsiniz.
Kullanıcı avatarı
Mesut Topal
Siteye Alışmış
 
Kayıt: 15 Eyl 2016 19:19
Meslek: Matematik Öğretmeni
Yaş: 33
İleti: 460
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Samsun/Ladik

Cevap: Cevap: Hücre değerine göre filitreleme yapmak.!!

İleti#11)  sinan05 » 17 Tem 2019 09:28

[quote="Mesut Topal"]Bu sefer tamamdır.
Örnek dosya olmadığı için kodları denememiştim.
Kendim bi tane hazırladım.

Kod: Tümünü seç
Sub filtrele()
With Sheets("Sayfa1")
    .AutoFilterMode = False
    ReDim taksitler(1 To 100)
        k = 1
        For i = 1 To 100
            If Application.WorksheetFunction.CountIf(.Cells(9, 1), "*" & "," & i & "." & "*") > 0 Then
                k = k + 1
                taksitler(k) = i & ".Taksit"
            End If
        Next i
        taksitler(1) = Val(.Cells(9, 1)) & ".Taksit"
    ReDim Preserve taksitler(1 To k)
    .Cells(9, 1).Resize(, 100).AutoFilter Field:=1, Criteria1:=Array(taksitler), Operator:=xlFilterValues
End With
End Sub
[/quote

MESUT Hocam süpersiniz, çok güzel oldu emeğinize sağlık eksik olmayın. Fakat benden kaynaklanan bir sorun var. her taksit gruplar halinde yani 1.taksitler bitince bir satır boşluk olup sonra 2.taksitler başlıyor. Boşluk olunca filitreleme olmuyor artık onu kendimce çözcem o boşlukları bişekilde doldurcam. Tekrar sağolun çok teşekkürler.
Kullanıcı avatarı
sinan05
Siteye Alışmış
 
Kayıt: 25 Arl 2017 19:37
Meslek: ticari-binek oto alım satım.
Yaş: 37
İleti: 157
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: istanbul-bakırköy

Cevap: Hücre değerine göre filitreleme yapmak.!!

İleti#12)  Mesut Topal » 17 Tem 2019 10:34

Est. bi faydamız dokunduysa ne mutlu.

Şu kısımdan boşluk ayarlayabilirsiniz.
"*" & "," & i & "." & "*" Burada 1.taksit,2.taksit,3.taksit... şeklinde yazımı dikkate alıyor.
"*" & ", " & i & "." & "*" böyle olursa 1.taksit, 2.taksit, 3.taksit... şeklinde yazımı dikkate alır.
Kullanıcı avatarı
Mesut Topal
Siteye Alışmış
 
Kayıt: 15 Eyl 2016 19:19
Meslek: Matematik Öğretmeni
Yaş: 33
İleti: 460
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Samsun/Ladik

Cevap: Cevap: Hücre değerine göre filitreleme yapmak.!!

İleti#13)  sinan05 » 17 Tem 2019 11:51

Mesut Topal yazdı:Est. bi faydamız dokunduysa ne mutlu.

Şu kısımdan boşluk ayarlayabilirsiniz.
"*" & "," & i & "." & "*" Burada 1.taksit,2.taksit,3.taksit... şeklinde yazımı dikkate alıyor.
"*" & ", " & i & "." & "*" böyle olursa 1.taksit, 2.taksit, 3.taksit... şeklinde yazımı dikkate alır.


HOCAM ne demek çok çok fazla yardımlarınız oldu. Çok teşekkürler yardımlarınız için sağolun tekrardan süpersiniz.
Kullanıcı avatarı
sinan05
Siteye Alışmış
 
Kayıt: 25 Arl 2017 19:37
Meslek: ticari-binek oto alım satım.
Yaş: 37
İleti: 157
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: istanbul-bakırköy


Forum Genel Makro Soruları

Online Kullanıcılar

Bu forumu görüntüleyenler: AhrefsBot, Sogou ve 2 misafir

Bumerang - Yazarkafe