• DİKKAT

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

ComboBox Row Source Problemi

Katılım
4 Ekim 2004
Mesajlar
155
UserForm üzerinde ComboBox8 ve ComboBox9 var.ikisindede boşluk ve tekrarı önlemek istiyorum ve de Sıralamak

Private Sub UserForm_Initialize()
For a = 2 To Sheets("YURTICI").Cells(65536, 1).End(xlUp).Row
If WorksheetFunction.CountIf(Worksheets("YURTICI").Range("B2:B" & a), Sheets("YURTICI").Cells(a, 2)) = 1 Then
ComboBox9.AddItem Sheets("YURTICI").Cells(a, 2).Value
End If
Next
ComboBox9.List = ListSort(ComboBox9.List) '"BURAYA KADAR SORUN YOK COMBOBOX9 U SIRALIYOR VE BOÞLUKLARI KALDIRIYOR

For z = 2 To Sheets("YURTICI").Cells(65536, 1).End(xlUp).Row
deger = Sheets("YURTICI").Range("C" & a)
If deger <> "" Then
ComboBox8.AddItem deger
End If
Next z
ComboBox8.List = ListSort(ComboBox8.List) '2.KISMI YANİ COMBOBOX8 İ NEDEN YAPMIYOR?
********
Function ListSort(liste As Variant)
Dim First As Integer, Last As Integer
Dim i As Integer, J As Integer
Dim Temp
First = LBound(liste)
Last = UBound(liste)
For i = First To Last - 1
For J = i + 1 To Last
If liste(i, 0) > liste(J, 0) Then
Temp = liste(J, 0)
liste(J, 0) = liste(i, 0)
liste(i, 0) = Temp
End If
Next J
Next i
ListSort = liste
End Function
 
ComboBox8.List = ListSort(ComboBox8.List)

Yıukarıdaki satırda anladığım kadarı ile comboboxa sıralı veri almak istiyorsunuz. Listsort şeklinde ben bir komut bilmiyorum. Bence bu listeyi sayfa üzerinde sıralatıp ondan sonra comboboxa almalısınız.
 
ComboBox9 için ListSort fonksiyonu çalışıyor..
ComboBox8 içinde çalışmasını istiyorum o kadar...PROBLEM NEREDE?
 
Haklısınız son kısımdaki kodlara bakmamışım.

If deger <> "" Then

yukarıdaki kodu aşağıdaki gibi deneyin.

If deger <> 0 Then
 
olmadı ya..peki şöyle denesek aynen ComboBox8'e yazdığımız gibi?

Private Sub UserForm_Initialize()
For a = 2 To Sheets("YURTICI").Cells(65536, 1).End(xlUp).Row
If WorksheetFunction.CountIf(Worksheets("YURTICI").Range("B2:B" & a), Sheets("YURTICI").Cells(a, 2)) = 1 Then
ComboBox9.AddItem Sheets("YURTICI").Cells(a, 2).Value
End If
Next
ComboBox9.List = ListSort(ComboBox9.List) '"BURAYA KADAR SORUN YOK COMBOBOX9 U SIRALIYOR VE BOÞLUKLARI KALDIRIYOR


For w = 2 To Sheets("YURTICI").Cells(65536, 1).End(xlUp).Row
If WorksheetFunction.CountIf(Worksheets("YURTICI").Range("C2:C" & w), Sheets("YURTICI").Cells(w, 3)) = 1 Then
ComboBox8.AddItem Sheets("YURTICI").Cells(w, 3).Value
End If
Next
ComboBox8.List = ListSort(ComboBox8.List) bu Satırı kaldırsam bile yine hata veriyor..Permisson DENIED diyor ya... :kafa:
 
Bu hata mesajı çıktığına göre combobox8'in rowsource özelliği ile bir alan tanımlamışsınız. Bu durumda additem ile tekrar yükleme yapmaya çalışıyorsunuz. Rowsource ile yapılan yüklemeyi iptal edin.
 
Geri
Üst