Listbox' ta İlk satır süzde kayboluyor

Katılım
28 Ocak 2008
Mesajlar
260
Excel Vers. ve Dili
2003
29 sütunlu bir listbox oluşturdum, ilk satır sabit kaydırma çubukları ile ilerleyip ilk satırdaki başlıkları görüyorum taki listboxta comboboxlar ile süz işlemi yapınca ilk satır felan kalmıyor aranan kriterdeki veriler listelendiğinden ilk satırı göstermiyor, kaydırma çubuğu ile diğer sütunlar gözüktüğünden label eklenemiyor, bende 2. bir listbox yaptım ilk satırı gösteren bu seferde listboxların kaydırma çubukları beraber çalışması mümkün olmadığından işin içinden çıkılması zor bir hal aldı Önerileriniz nedir arkadaşlar ??
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Benim önerim, örnek bir dosya eklemeniz yönünde ...

Anlaşılmıyor. Mesela, Listbox'a nasıl veri aldığınızı hiç anlatmamışsınız.

Bir de; mesaj yazarken, noktalama işaretleni kullanın lütfen. Zira yazılanları takip etmek ve anlamak çok zorlaşıyor.
 
Katılım
28 Ocak 2008
Mesajlar
260
Excel Vers. ve Dili
2003
Listboxta ilk satır sorunu

Ferhat bey, örneği ekledim. İki sorunum var;

1. Sorun userform2 de listbox ile verileri aldıramyorum, ilk satırı sabitledim fakat comboboxlar ile süz işlemi yapıldığında, aranan kriterler listelendiğinden ilk satırdaki sütun başlıkları gözükmüyor.

2. Sorun userform2 de comboboxlar ile süz işlemi yapıldığında, birdaha süz işlemi yapılamıyor.

Örnek: combobx2 de ahmet isimlileri listelemesini istiyorum listeleme yapıyor, [ fakat yine aynı comboboxta osman ismini listelemek istediğimde listeleme yapmıyor. COLOR="Red"](ahmet ismini silip osman yazdığımda)[/COLOR]

Noktalama işaretleri için kusura bakmayın. İşten çıkar iken acele ederek yazdım.
 
Son düzenleme:
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Öncelikle Listbox ile bahsettiğiniz işlemi yapmak, alavere dalavere çevirmeden pek mümkün gözükmüyor. Zaten siz de, başlık satırını görüntülemek için, ikinci bir Listbox yaratma yolunu tercih etmişsiniz. Ama anlayacağınız üzere çok da kullanışlı olmamış.

Ben projenizdeki Userformlara dokunmadım. İsterseniz o şekilde devam edebilirsiniz.

Userform3 adında bir UF ilave ettim. Listboxları silerek yerine bir adet Listview nesnesi ekledim.

Userform3'ün Initialize kodlarına aşağıdakiler yazıldı.

Kod:
Private Sub UserForm_Initialize()
    Dim sh As Worksheet
    Dim arrBas()
    Dim i As Integer
    
    Set sh = Sheets("Bilgiler Link")
    arrBas = Array(55, 70, 130, 170, 35, _
                   80, 35, 65, 45, 30, 50, _
                   170, 25, 40, 40, 40, 40, _
                   50, 65, 65, 35, 65, 65, _
                   35, 65, 180, 30, 50, 35)
    
    ComboBox1.List = sh.Range("A2:A" & _
                        sh.Cells(65536, 1).End(xlUp).Row).Value
    ComboBox6.List = sh.Range("B2:B" & _
                        sh.Cells(65536, 2).End(xlUp).Row).Value
    ComboBox9.List = sh.Range("C2:C" & _
                        sh.Cells(65536, 3).End(xlUp).Row).Value
    ComboBox7.List = sh.Range("D2:D" & _
                        sh.Cells(65536, 4).End(xlUp).Row).Value
    ComboBox28.List = sh.Range("E2:E" & _
                        sh.Cells(65536, 5).End(xlUp).Row).Value
    ComboBox13.List = sh.Range("F2:F" & _
                        sh.Cells(65536, 6).End(xlUp).Row).Value
    ComboBox14.List = sh.Range("G2:G" & _
                        sh.Cells(65536, 7).End(xlUp).Row).Value
    ComboBox15.List = sh.Range("G2:G" & _
                        sh.Cells(65536, 7).End(xlUp).Row).Value
    ComboBox16.List = sh.Range("G2:G" & _
                        sh.Cells(65536, 7).End(xlUp).Row).Value
    ComboBox17.List = sh.Range("G2:G" & _
                        sh.Cells(65536, 7).End(xlUp).Row).Value
    ComboBox8.List = sh.Range("H2:H" & _
                        sh.Cells(65536, 8).End(xlUp).Row).Value
    ComboBox10.List = sh.Range("I2:I" & _
                        sh.Cells(65536, 9).End(xlUp).Row).Value
    ComboBox5.List = sh.Range("J2:J" & _
                        sh.Cells(65536, 10).End(xlUp).Row).Value
    
    TextBox1.Text = "Butona Basın"
    
    With ListView1
           .View = lvwReport
           .Gridlines = True
           .FullRowSelect = True
            For i = 0 To UBound(arrBas)
                .ColumnHeaders.Add , , sh.Cells(1, i + 12).Text, arrBas(i)
            Next i
    End With
    
    Call Liste_Olustur
    
    Set sh = Nothing
    
End Sub
Kod sayfasına, "Liste_Olustur" adında özel bi prosedür daha ilave edildi. Bu prosedür Listview'e belirli kriterlere göre veri yüklenmesini sağlamaktadır.

Kod:
Private Sub Liste_Olustur()
    Dim sh As Worksheet
    Dim i As Integer
    Dim j As Integer
    Dim y As Integer
    
    Set sh = Sheets("Bilgiler Link")
    
    With ListView1
       .ListItems.Clear
        For i = 2 To sh.Cells(65536, "L").End(xlUp).Row
            If ComboBox1.Text = "" Or _
                ComboBox1.Text = sh.Cells(i, "L") Then
                If ComboBox9.Text = "" Or _
                    ComboBox1.Text = sh.Cells(i, "T") Then
                   If ComboBox6.Text = "" Or _
                        ComboBox6.Text = sh.Cells(i, "Q") Then
                        If ComboBox4.Text = "" Or _
                            ComboBox4.Text = sh.Cells(i, "O") Then
                            If ComboBox5.Text = "" Or _
                                ComboBox5.Text = sh.Cells(i, "P") Then
                                If ComboBox10.Text = "" Or _
                                    ComboBox10.Text = sh.Cells(i, "U") Then
                                    If ComboBox13.Text = "" Or _
                                        ComboBox13.Text = sh.Cells(i, "X") Then
                                        If ComboBox7.Text = "" Or _
                                            ComboBox7.Text = sh.Cells(i, "R") Then
                                            If ComboBox3.Text = "" Or _
                                                ComboBox3.Text = sh.Cells(i, "N") Then
                                                If ComboBox26.Text = "" Or _
                                                    ComboBox26.Text = sh.Cells(i, "AK") Then
                                                    If ComboBox8.Text = "" Or _
                                                        ComboBox8.Text = sh.Cells(i, "S") Then
                                                        If ComboBox28.Text = "" Or _
                                                            ComboBox28.Text = sh.Cells(i, "AM") Then
                                                            If ComboBox18.Text = "" Or _
                                                                ComboBox18.Text = sh.Cells(i, "AC") Then
                                                                If ComboBox11.Text = "" Or _
                                                                    ComboBox11.Text = sh.Cells(i, "V") Then
                                                                    If ComboBox29.Text = "" Or _
                                                                        ComboBox29.Text = sh.Cells(i, "AN") Then
                                                                        If ComboBox27.Text = "" Or _
                                                                            ComboBox27.Text = sh.Cells(i, "AL") Then
                                                                            If ComboBox15.Text = "" Or _
                                                                                ComboBox15.Text = sh.Cells(i, "Y") Then
                                                                                If ComboBox16.Text = "" Or _
                                                                                    ComboBox16.Text = sh.Cells(i, "Z") Then
                                                                                    If ComboBox17.Text = "" Or _
                                                                                        ComboBox17.Text = sh.Cells(i, "AA") Then
                                                                                        If ComboBox18.Text = "" Or _
                                                                                            ComboBox18.Text = sh.Cells(i, "AB") Then
            y = y + 1
            .ListItems.Add , , sh.Cells(i, "L")
            For j = 1 To 28
                .ListItems(y).SubItems(j) = sh.Cells(i, j + 12)
            Next j
                                                                                        End If
                                                                                    End If
                                                                                End If
                                                                            End If
                                                                        End If
                                                                    End If
                                                                End If
                                                            End If
                                                        End If
                                                    End If
                                                End If
                                            End If
                                        End If
                                    End If
                                End If
                            End If
                        End If
                    End If
                End If
            End If
        Next i
        TextBox2.Text = .ListItems.Count
    End With
    
End Sub
Bu özel prosedür, tüm Comboboxların Change olayına yerleştirildi .. Örneğin,
Kod:
Private Sub ComboBox9_Change()
    Call Liste_Olustur
End Sub
Ayrıca Commandbutton1 Click olayına da aşağıdakiler yazıldı. Bu comboların tümünü temizlemede kullanılıyor.

Kod:
Private Sub CommandButton1_Click()
    Dim ctrl As Control
    Application.EnableEvents = False
    For Each ctrl In Me.Controls
        If TypeOf ctrl Is MSForms.ComboBox Then
            ctrl.Text = ""
        End If
    Next
    Application.EnableEvents = True
    Call Liste_Olustur
End Sub
 
Katılım
28 Ocak 2008
Mesajlar
260
Excel Vers. ve Dili
2003
Harika olmuş......

Ferhat Beyt, benim nezamandan beridir yapmaya çalıştığım ve beceremediğim şeyi bir anda yapıp sonuçlandırdınız teşekürler,

Bazı sorunlarım var;

1- Bazı comboboxlara el ile veri girilerek süzme işlemi yapılması gerekiyor. örneğin; title gibi uzun bir bilgiyi tam, eksiksiz girmek gerekiyorki süz olsun bu sebeple, veri girerken harf harf benzerleri listelense olabilir mi ?
2- Bölgeleri Listeleyen Combobox çalışmıyor.
3-Süzme işleminde özellikle bazen, yıla veya aya göre süz işlemi yapmam gerekiyor bu mümkün mü ?
4- Userform3' ü benim orjinal çalışmamın içine vba' dan(her iki proje de açıkken) sürükle bırak ile taşıyıp, userform3 çalıştırdığımda listwievde her sütunda aynı bilgiyi (ilk firma ismini A2 hücresi) gösteriyor yani çalıştıramadım.

Yardımlarınız için teşekkürler.
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
1- Bazı comboboxlara el ile veri girilerek süzme işlemi yapılması gerekiyor. örneğin; title gibi uzun bir bilgiyi tam, eksiksiz girmek gerekiyorki süz olsun bu sebeple, veri girerken harf harf benzerleri listelense olabilir mi ?
Bunun için "=" operatörü yerine "Like" operatörü kullanarak kodlarınız revize edilmiştir. İnceleyiniz.

2- Bölgeleri Listeleyen Combobox çalışmıyor.
Doğrudur. Çünkü, yanlışlıkla, Combo ismini hatalı girmişim. Düzeltidli. İnceleyiniz.

3-Süzme işleminde özellikle bazen, yıla veya aya göre süz işlemi yapmam gerekiyor bu mümkün mü ?
Mümkündür. Ama, Userform tasarımınızı değiştirmek ve Başlangıç ve Biriş tarih aralığını gösteren nesnelere (DTPicker gibi) ihtiyaç var. Şu an tek bir combobox'a elle tarih girerek bu işlemi yapmaya çalışıyorsunuz.

Ben, tasarımınıza dokunmak istemediğim için, bu nesneleri şu an eklemedim. İsterseniz ekleyebiliriz. Böylelikle, herhangi bir tarih aralığını sorgulayabilirsiniz.

4- Userform3' ü benim orjinal çalışmamın içine vba' dan(her iki proje de açıkken) sürükle bırak ile taşıyıp, userform3 çalıştırdığımda listwievde her sütunda aynı bilgiyi (ilk firma ismini A2 hücresi) gösteriyor yani çalıştıramadım.
Bunun için Userform3'ü (örneğin "Belgelerim" klasörüne) "Export" edin. Daha sonra orjinal projenize; "Belgelerim" klasörüne attığınız UF dosyasını "Import" edebilirsiniz.
 
Katılım
28 Ocak 2008
Mesajlar
260
Excel Vers. ve Dili
2003
Mükemmel bir proje olma yolunda ilerliyorum, sayenizde

Bunun için "=" operatörü yerine "Like" operatörü kullanarak kodlarınız revize edilmiştir. İnceleyiniz.


Doğrudur. Çünkü, yanlışlıkla, Combo ismini hatalı girmişim. Düzeltidli. İnceleyiniz.


Mümkündür. Ama, Userform tasarımınızı değiştirmek ve Başlangıç ve Biriş tarih aralığını gösteren nesnelere (DTPicker gibi) ihtiyaç var. Şu an tek bir combobox'a elle tarih girerek bu işlemi yapmaya çalışıyorsunuz.

Ben, tasarımınıza dokunmak istemediğim için, bu nesneleri şu an eklemedim. İsterseniz ekleyebiliriz. Böylelikle, herhangi bir tarih aralığını sorgulayabilirsiniz.



Bunun için Userform3'ü (örneğin "Belgelerim" klasörüne) "Export" edin. Daha sonra orjinal projenize; "Belgelerim" klasörüne attığınız UF dosyasını "Import" edebilirsiniz.


Ferhat bey, tarih olayı önemli ve bu şeklilde bir süz işlemi yaparak (Ay/Yıl) yapmak istediğim raporlamaları çok daha hızlı yapa bilirim. Zahmet olmazsa userformda buna göre değişiklikleri yapa bilirmiyiz ?

Diğer bir husus userform1 de değiştir veya kaydet butonlarında sorun oluyor ilk denemem olduğu için kodlarda eksiklikler mevcut zahmet olmazsa kontrol edermisiniz.

Mahçup oluyorum sizin yardımlarınız karşısında sanki armut piş azıma düş oluyor. kısaca şu sözü eklemek istiyorum siz ve bu şekilde yardımcı olan tüm arakadaşlara " Bir harf öğretenin kölesi olurum" bu söz emeğinizin ne derece kıymetli olduğunu anlatıyor.
 
Son düzenleme:
Katılım
28 Ocak 2008
Mesajlar
260
Excel Vers. ve Dili
2003
Ferhat bey, yardım elinizi çekmeyin

Yüzdük yüzdük kuyruğuna geldiktik şu tarih işi ile userform1 de kontrol edebilirmisiniz ferhat bey...

Teşekkürler..
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Ekteki dosyayı inceleyiniz. Tarih seçimi eklendi.

NOT : Hata kontrolleri üzerinde çok fazla duramadım. Hata ile karşılaşırsanız, lütfen bildiriniz.
 
Katılım
28 Ocak 2008
Mesajlar
260
Excel Vers. ve Dili
2003
Hocam, Ben anlamadım bu ne bahtsızlık ! :(

Ekteki dosyayı inceleyiniz. Tarih seçimi eklendi.

NOT : Hata kontrolleri üzerinde çok fazla duramadım. Hata ile karşılaşırsanız, lütfen bildiriniz.

Tekrar merhaba,

Evde çalışmak istedim, makimde kurulu office 2003 yada 2007 de açmaya çalışıyorum dosyayı ek teki hatayı veriyor.

Fakat iş yerimde 2003 ing office de, ilk açtığımda (gönderdiğiniz dosyayı) açtı tarih aralıklarınıda test ettim. Sonuç olumlu

Evde bu hatayı verdi anlamıyorum hocam, ayrıca dediğiniz gibi dosya içindeki yapmış olduğunuz userform3' ü belgelerim içine çıkartıp tam verilerimin olduğu orjinal dosyamın içine eklediğimde de kullanamıyorum ne yapayım dosyanın orjinalini mi göndermem gerekli ?

Diğer sorun ise user form1 değiştirmek istedim listbox ekledim (sadece) verileri aldırma komutu il listboxa verileri de aldıramadım ordada sorun verdi, neden olabilir bu sorunlar ?

Dosyayı eklerken birşey farkettim hocam, sizin yaptığınız örneğe herhangibi bir değişiklik yaptığımda userform1 veya benzeri yerlerde hata veriyor. Neden olabilir ?

Örnek. gönderdiğim dosyadaki userform1' i yaptığınız asterix123... adlı dosyaya transfer edildiğinde çalışmıyor, hata veriyor kullanmak mümkün olmuyor..

Bu kadar uzun yazdığım için kusura bakmayın, sıkıntımı tam anlatmak istedim.

Teşekkürler
 
Son düzenleme:
Katılım
28 Ocak 2008
Mesajlar
260
Excel Vers. ve Dili
2003
Listview hatası

Hocam yoruldum inanın, yoran şey çabalamak değil sonuç alamamak.. Listview'i eklediğimizden beri özellikle tarih olayını bir türlü düzgün çalıştıramadım. Userform3' ü çıkartıp tekrara tam verilerin olduğu dosyaya taşıdım, olmadı. Yaptığınız dosyaya sayfaları taşıdım olmadı olmadı....

Vba yı çalıştırmak istediğimde şu hata mesajını veriyor..

"Could not load some objects because they are not available on this machine "

Teşekkür ederim..
 
Son düzenleme:
Katılım
28 Ocak 2008
Mesajlar
260
Excel Vers. ve Dili
2003
DTPICKER Sorunu Ok!

Vba yı çalıştırmak istediğimde şu hata mesajını veriyor..

"Could not load some objects because they are not available on this machine "

Teşekkür ederim..

Hatanın sebebi en son yüklediğimiz tarih aralıkları ile süz işleminden (DTPICKER) kaynaklı ve sorunu linkteki bilgiler doğrultusunda çözdüm ilgilenen arkadaşların dikkatine..!

Konu Hakkında Bilgi :http://www.excel.web.tr/showthread.php?t=11482&highlight=DTPICKER

Yükleme Adresi :http://www.vbasicmaster.com/activex.asp
 
Katılım
28 Ocak 2008
Mesajlar
260
Excel Vers. ve Dili
2003
Acil Destek..........................

Hocam, Tek bir sorun kaldı ve sizden tek ricam olacak bu konuda; Mümkünse gönderdiğiniz son dosyadaki (tarih formatı eklenmiş) userform1 içine 1 adet listbox eklemeniz. (L ve AN sütunlarını kapsayan) Bunu yapsanız yeter, çünkü ben kanser olacağım.... :)
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Userform1'in neresine koyulacak bu nesne ? Bir de Listbox'mı Listview mi koyulacak ? Userform1 ne işe yarıyor ?
 
Katılım
28 Ocak 2008
Mesajlar
260
Excel Vers. ve Dili
2003
Userform1'in neresine koyulacak bu nesne ? Bir de Listbox'mı Listview mi koyulacak ? Userform1 ne işe yarıyor ?
Ferhat Bey,

Userform1 amacı; personel giriş kayıtlarının yapılması (değiştirme,silme v.s.)
görünümüne eklenti olarak bir listbox koymak istiyorum ( dbl.click ile comboboxlara aldırma) v.b. işlemleri yapacağım.

Esasında tüm bunları yaparken neredesye tekrar yazmak gerekecek kodları çünkü gereksiz ve uzun olanlar var bu sebeple, hazır işe girişmişken komple bir veri denetim oluşturmak istiyorum userform1 de.. (sil,değiştir,kaydet v.s.)

Fakat listbox eklemek isteyipte, çalıştırdığımda (userform1'i) hata veriyor.
Neden olabilir ferhat bey ? herşey listview den sonra böyle oldu, özelliklede userform3'ü (yaptığınız listview formu) dediğiniz gibi belgelerime yada benzer yerlere de çıkartarak mevcut veri tabanı içine taşıdığımda listeleme yapmıyor.

Teşekkürler..
 
Katılım
15 Haziran 2006
Mesajlar
3,704
Excel Vers. ve Dili
Excel 2003, 2007, 2010 (TR)
Sorununuzun ne olduğu hala anlayabilmiş değilim ? Listbox eklenmiş Userform1 örneğini, ek dosyada bulabilirsiniz.
 
Üst