Filitrelerken hata olusuyor

Katılım
3 Nisan 2006
Mesajlar
118
Excel Vers. ve Dili
Vers. 2013 Almanca
Merhaba Arkadaslar,

Ben Form’u dolasirken filitrelemek ile bir örnek dosya buldum ve kendim icin uyguladim, calisiyor ama biraz hata yapiyor. Önce söyle anlatmak istiyorum;

*UserFormu aciniz ve ekrana gelen ListBox üzerindeki satirlardan birtanesine cift tiklayiniz. TextBox’lar verilerle dolacaktir. TextBox’lardan herhangi birisinin icerisindeki veriyi degistiriniz. Cok güzel calisacaktir.

Soru1:
*Ayni islemi UserForm’ u actiktan sonra ComboBox’ un icerisindeki isimlerden birisini seciniz, secilen veri ListBox’a gelecektir. ListBox’a gelen veriye cift tiklayin, veriler TextBox’lara gelecektir. TextBox’lardan birisinin icerisindeki veriyi degistirin. Veri degistirilecektir ama TextBox icerisindeki degistirilen verinin bulundugu satirlardaki verilerin tamamini “A1“ hücresine yaziyor. Buda demek oluyor ki,
Örnegin: Besinci satiri secmisseniz, besinci satiri degistirilmis olarak “A1“ hücresinde göreceksiniz. Besinci satirdaki veri oldugu yerde kaliyor. Sayfada ikitane ayni veri gözüküyor.

Cözüm söylede olabilir: ComboBox hata yaptiriyor. ComboBox ile cagrilan veriler Sayfa2 ye kaydediliyor, ComboBox icerisindeki Sayfa2 ye kaydeden kodu silebiliriz. Ben sayfa2 ye ListBox’taki verileri kaydetmesemde olur. Ben VBA yi daha tam anlayamadigim icin bu kodu kaldiramadim. Belkide problem buradan olusuyor.

Soru 2: ComboBox3 de filitreleme isini yapiyor. ComboBox3’ ün icerisindeki verileri “Yükselen deger” olarak filitrelendirebilirmiyiz. ComboBox3 deki sayilar benim icin Telefon edidiginde öncelikli sirayi gösteriyor.
Örnegin: ComboBox1 de “TÜMÜ” seciniz, ComboBox2 de “V2/ 2. OG” seciniz, ComboBox3 de su rakamlari göreceksiniz :1,3,7,2,4,5,6,9,8, Ben 1,2, 3,4,5,6,7,8,9 olarak gözükmesini istiyorum.

Umarim mümkündür.

Kaleci
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
1-Kod Sayfa 2 ye yazıp sonra bu verileri listboxa almaktadır. Dolayısıyla bu sayfaya yazan kodları kaldıramazsınız. Değiştirilecek verinin satırını bulmak için DEĞİŞTİR butonundaki sonsat değişkeni ile ilgili kod aşağıdaki ile değiştirin.

if combobox1<>"TÜMÜ" then sonsat = [b1:b65536].Find(ComboBox1).Row

2-Bu sorunuzun cevabı çok basit değil bunun için aşağıdaki linki inceleyin.

http://www.excel.web.tr/viewtopic.php?t=12710
 
Katılım
3 Nisan 2006
Mesajlar
118
Excel Vers. ve Dili
Vers. 2013 Almanca
Sayin leventm Hocam,

Yazdiginiz kodu asagidaki yesil renkteki gibi kaydettim ve kirmizi renkte olanida sildim. (End If'i) Ben kendim yazdim. Cünkü "If ohne End If" diye bana soruyor.
Ama kod degistirmek istedigim veriyi degistirmiyor.

Galiba ben kodu kaydederken hata yapiyorum.
Cünkü siz yazdiginiz kodlarinizi denemeden arkadaslara göndermiyorsunuz.

Hocam bir de verdiginiz Link (http://www.excel.web.tr/viewtopic.php?t=12710) cagrilamiyor. Herhalde Link silinmis.

Private Sub CommandButton2_Click()
sor = MsgBox("Deðiþtirmek istediðinizden eminmisiniz?", vbYesNo)
If sor = vbNo Then Exit Sub
If ComboBox1 <> "TÜMÜ" Then
sonsat = [b1:b65536].Find(ComboBox1).Row


sonsat = ListBox1.ListIndex + 2
Cells(sonsat, 2) = TextBox1
Cells(sonsat, 3) = TextBox2
Cells(sonsat, 4) = TextBox3
Cells(sonsat, 5) = TextBox4
Cells(sonsat, 6) = TextBox5
Cells(sonsat, 7) = TextBox6
Cells(sonsat, 8) = TextBox7
Cells(sonsat, 9) = TextBox8
Cells(sonsat, 10) = TextBox9
Cells(sonsat, 11) = TextBox10
Cells(sonsat, 12) = TextBox11
Cells(sonsat, 13) = TextBox12

ListBox1.RowSource = "B2:M" & [a65536].End(3).Row
MsgBox "DEÐÝÞÝKLÝK YAPILMIÞTIR"
End If
End Sub
 
Üst