AddItem & Rowsource sorunu

Katılım
5 Mart 2010
Mesajlar
227
Excel Vers. ve Dili
Ofis 2010 TR 32 Bit
Altın Üyelik Bitiş Tarihi
01-02-2025
Merhaba Arkadaşlar;
Üzerinde bir aydır çalıştığım proje malesef AddItem'i Rowsource'e çevirememekten dolayı heba olacak.
Örnek olarak sunduğum dosyayı nasıl çevirebilirim. Ne kadar uğraştım, araştırdıysam olmadı.
Onuncu sütundan sonrası TextBox1'den ListBox1'e geçmiyor. AddItem nedeniyle kısıtlandı.
Bu sorunu çözebilirseniz çok memnun olurum.
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,765
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bu durum forumda defalarca dile geldi. Çözümü de sunuldu.

Bu sorunu aşmanın iki yolu var.

1- Yardımcı bir sayfa kullanılabilir. Arama sonuçları bu sayfaya yazdırılır ve RowSource metodu ile veriler Listbox nesnesine yüklenir.
2- Dizi yöntemi kullanılarak veriler ListBox nesnesine yüklenir.

2. Yönteme ait kodlar;

C++:
Private Sub TextBox1_Change()
    Dim Veri As Variant, Son As Long, X As Long, Say As Long, Y As Byte
    
    If TextBox1.Value <> "" Then
        On Error Resume Next
        ListBox1.RowSource = ""
        ListBox1.Clear
        On Error GoTo 0
        
        Son = Cells(Rows.Count, 1).End(3).Row
        Veri = Range("A8:O" & Son).Value
        
        ReDim Liste(1 To 15, 1 To 1)
        
        For X = LBound(Veri) To UBound(Veri)
            Aranan = UCase(Replace(Replace(TextBox1.Value, "ı", "I"), "i", "İ"))
            Ad_Soyad = UCase(Replace(Replace(Veri(X, 2), "ı", "I"), "i", "İ"))
            If Ad_Soyad Like Aranan & "*" Then
                Say = Say + 1
                ReDim Preserve Liste(1 To 15, 1 To Say)
                For Y = 1 To 15
                    If Y = 5 Then
                        Liste(Y, Say) = Format(Veri(X, Y), "dd.mm.yyyy")
                    Else
                        Liste(Y, Say) = Veri(X, Y)
                    End If
                Next
            End If
        Next
        If Say > 0 Then
            ListBox1.ColumnCount = 15
            ListBox1.ColumnWidths = "90;90;90;55;55;55"
            ListBox1.Column = Liste
        End If
    Else
        UserForm_Initialize
    End If
End Sub
 
Katılım
5 Mart 2010
Mesajlar
227
Excel Vers. ve Dili
Ofis 2010 TR 32 Bit
Altın Üyelik Bitiş Tarihi
01-02-2025
Teşekkür ederim Korhan Bey,
Aynı harfle başlayan iki kişiden birini arattığım zaman

Liste(Y, Say) = Veri(X, Y)

Sarı renkli hata veriyor.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,765
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Benim hatam. Bir satırı yazmayı unutmuşum.

Şimdi revize ettim. Üstte ki mesajımı revize ettim. Deneyiniz.

Tabi bu durumda diğer kodlarınızı revize etmeniz gerekecektir.
 
Katılım
5 Mart 2010
Mesajlar
227
Excel Vers. ve Dili
Ofis 2010 TR 32 Bit
Altın Üyelik Bitiş Tarihi
01-02-2025
Sayın Korhan Ayhan, sitede arama yapmama rağmen bu konuda açıklayıcı bir örnek bulamadım. Tam anlamıyla dizi yöntemine geçmek ve sorunsuz çalışabilmek için güzel bir örnek bulsam iyi olurdu. yada kendi örneğimde diğer hangi kodların revize edileceğini bilsem. Addİtem olayının 10 dan fazla göstermediğini bile yeni öğrendim daha. Yolun başındayım yani. Sayenizdekendi çapımda bir program yapmaya, yaparken öğrenmeye çalışıyorum.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,765
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Yanlış anlamayın ama detaylı araştırmazsanız tabi ki nesnenin özelliklerini yeni öğrenirsiniz.

Hep diyoruz projeye başlamadan önce nesnelerin özelliklerini iyice araştırın. Bu bilgilerin illa ki bu forumda olmasına gerek yok. Nette o kadar çok bilgi var ki. Tabiri caizse öğrenmeyeni dövüyorlar.

Yeni öğrenenleri çok iyi anlıyorum. Hemen projeye girişiyorlar ve sonunda çok ilerleyemeden problemler başlıyor. Sonra tabiri caizse "yandım anam" deyip foruma başlık açıyorlar. Üstadlar "Userform çalışmıyor" , "Textbox ile yazdığımı sayfada bulamıyor" gibisinden yardım taleplerini dile getiriyorlar.

Eğer gerçekten öğrenmek istiyorsanız, size tavsiyem aşağıdaki linkleri iyice sindirdikten sonra projeye başlamanızdır.

 
Katılım
5 Mart 2010
Mesajlar
227
Excel Vers. ve Dili
Ofis 2010 TR 32 Bit
Altın Üyelik Bitiş Tarihi
01-02-2025
Doğru söylüyorsunuz. Emeklemeden koşmaya çalışıyoruz ondan oluyor. Şimdilik projeyi kenara bırakıp verdiğiniz linkleri komple acele etmeden yavaş yavaş inceleyeceğim. Şu "korana" günleri eğitim için iyi bir fırsat olabilir.
 
Üst