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
 

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
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.
 
Katılım
4 Ekim 2004
Mesajlar
155
ComboBox9 için ListSort fonksiyonu çalışıyor..
ComboBox8 içinde çalışmasını istiyorum o kadar...PROBLEM NEREDE?
 

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
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
 
Katılım
4 Ekim 2004
Mesajlar
155
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:
 

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
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.
 
Üst