• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

İptal edilen verileri filtreleme

  • Konbuyu başlatan Konbuyu başlatan crion
  • Başlangıç tarihi Başlangıç tarihi
Katılım
20 Ekim 2011
Mesajlar
60
Excel Vers. ve Dili
Excel 2010
Selamlar, bugünlerde yapmaya çalıştığım ama bir noktasında takıldığım pek çok şey var sizlerle paylaşmak istiyorum umarım bana yardımcı olabilirsiniz.

VB ile "iptal" olan değerleri filtrelemeye yapmaya çalışıyorum, kod arka planda excel sayfasında istediğim değişikliği yapıyor ancak ben bu değişikliği ListBox1 içinde görmek istiyorum, iptal edilenlerin listesi olarak. Nerede yanlış yapıyorum dersiniz?

Kod:
Private Sub CommandButton109_Click()           'sadece iptal edilenler
Dim MyRange As Range                            
Dim noA As Integer
ListBox1.Clear
noA = WorksheetFunction.CountA(Sheets("veri").Range("B:B"))   'sayfadaki son değer
Sheets("veri").Select
ActiveSheet.Range("L1:L" & noA).AutoFilter Field:=12, Criteria1:="İPTAL"        'iptal olanları seç, seçiyor arkada
For Each MyRange In Sheets("veri").Range("B2:B" & TextBox20.Value)              'B2den iptal edilen değer sayısı kadar for dönecek tek tek listeye eklemek için
ListBox1.AddItem (MyRange)                                                      'listeye ekle
Next
ComboBox5.Text = "Sadece iptal edilen hasarlar"
End Sub
 
Aşağıdaki gibi deneyin.

Kod:
Private Sub CommandButton109_Click()           'sadece iptal edilenler
Dim MyRange As Range                            
Dim noA As Integer
ListBox1.Clear
noA = WorksheetFunction.CountA(Sheets("veri").Range("B:B"))   'sayfadaki son değer
Sheets("veri").Select
ActiveSheet.Range("L1:L" & noA).AutoFilter Field:=12, Criteria1:="İPTAL"        'iptal olanları seç, seçiyor arkada
For Each MyRange In Sheets("veri").Range("B2:B" & TextBox20.Value)[COLOR=red][B].SpecialCells(xlCellTypeVisible)   [/B][/COLOR]           'B2den iptal edilen değer sayısı kadar for dönecek tek tek listeye eklemek için
ListBox1.AddItem (MyRange)                                                      'listeye ekle
Next
ComboBox5.Text = "Sadece iptal edilen hasarlar"
End Sub
 
Aşağıdaki gibi deneyin.

Kod:
Private Sub CommandButton109_Click()           'sadece iptal edilenler
Dim MyRange As Range                            
Dim noA As Integer
ListBox1.Clear
noA = WorksheetFunction.CountA(Sheets("veri").Range("B:B"))   'sayfadaki son değer
Sheets("veri").Select
ActiveSheet.Range("L1:L" & noA).AutoFilter Field:=12, Criteria1:="İPTAL"        'iptal olanları seç, seçiyor arkada
For Each MyRange In Sheets("veri").Range("B2:B" & TextBox20.Value)[COLOR=red][B].SpecialCells(xlCellTypeVisible)   [/B][/COLOR]           'B2den iptal edilen değer sayısı kadar for dönecek tek tek listeye eklemek için
ListBox1.AddItem (MyRange)                                                      'listeye ekle
Next
ComboBox5.Text = "Sadece iptal edilen hasarlar"
End Sub

hemen denedim ancak "hiç hücre bulunamadı" hatası verdi :aha:
filtrenin doğru çalıştığını arkadaki excel sayfasından anlıyorum ancak ListBox1'e bu liste olarak gelmiyor ne yazık ki.
 
Son düzenleme:
Çalışmaması için bir neden göremedim. Dosyanızı ekleyin.
 
Dosya ektedir. Hatayı veren buton ana ekranda sağ üstteki "İptal Edilen" in yanındadır. Excel'e dönmek için Aderans logosunun yanındaki excel butonuna tıklamanız yeterlidir.
 
Son düzenleme:
İlgili kodu aşağıdaki ile değiştirin.

Kod:
Private Sub CommandButton109_Click()           'sadece iptal edilenler
Dim MyRange As Range
Dim noA As Integer
Dim son As Integer
ListBox1.Clear
noA = WorksheetFunction.CountA(Sheets("veri").Range("B:B"))   'sayfadaki son değer
Sheets("veri").Range("L1:L" & noA).AutoFilter Field:=12, Criteria1:="İPTAL"        'iptal olanları seç, seçiyor arkada
[COLOR=red]son = Sheets("veri").[b65536].End(3).Row[/COLOR]
For Each MyRange In Sheets("veri").Range("B2:B" & [COLOR=red]son[/COLOR]).SpecialCells(xlCellTypeVisible)
'B2den iptal edilen değer sayısı kadar for dönecek tek tek listeye eklemek için
ListBox1.AddItem (MyRange)                                                      'listeye ekle
Next
ComboBox5.Text = "Sadece iptal edilen hasarlar"
End Sub
 
İlgili kodu aşağıdaki ile değiştirin.

Kod:
Private Sub CommandButton109_Click()           'sadece iptal edilenler
Dim MyRange As Range
Dim noA As Integer
Dim son As Integer
ListBox1.Clear
noA = WorksheetFunction.CountA(Sheets("veri").Range("B:B"))   'sayfadaki son değer
Sheets("veri").Range("L1:L" & noA).AutoFilter Field:=12, Criteria1:="İPTAL"        'iptal olanları seç, seçiyor arkada
[COLOR=red]son = Sheets("veri").[b65536].End(3).Row[/COLOR]
For Each MyRange In Sheets("veri").Range("B2:B" & [COLOR=red]son[/COLOR]).SpecialCells(xlCellTypeVisible)
'B2den iptal edilen değer sayısı kadar for dönecek tek tek listeye eklemek için
ListBox1.AddItem (MyRange)                                                      'listeye ekle
Next
ComboBox5.Text = "Sadece iptal edilen hasarlar"
End Sub

Teşekkürler Levent bey, tam istediğim gibi çalışıyor. Şimdi bu örnekten faydalanarak diğer butonlarda da filtreleme uygulamaya çalışacağım. İyi geceler.
 
son bir soru: bu filtrelemeyi iptal etmek için (listeyi eski haline döndürmek) ne yapmak gerekir?
 
Geri
Üst