(17/01/2020, 10:48)accessman yazdı: Hayırlı cumalar
Sub cmbFill(cmb As ComboBox, cIndex)
Dim i As Long
For i = 1 To databaseSheet.Range("A1000").End(xlUp).Row
cmb.AddItem databaseSheet.Cells(i, cIndex)
cmb.List(cmb.ListCount - 1, cIndex) = databaseSheet.Cells(i, cIndex + 1)
Next i
End Sub
bu kod ile listeyi alabiliyoruz ama istediğim şu
alfabetik sıralanmış
filtrelenmiş
her elemanın bir kez listelendiği
şekilde liste nasıl alabilirz
excel bubble sort combobox
Yukarıdaki gibi aratırsanız oldukça fazla çözüm var.
Tabii dosya eklemek en mantıklısı.
Biz eklersek dosya önce bir combo ekleyeceğiz bu combonun adını değiştireceğiz.Sayfanın afını değiştireceğiz.
Sayfaya veriler gireceğiz.Bu veriler metinmi sayısalmı olacak bilemeyeceğiz sizin verilere göre.
Görüldüğü gibi bir sürü işlem
ilginiz için teşekkürler
dediğiniz gibi aratacağım ve istediğim de genelde bu tarz cevaplar
mesela şurasını bir de şöyle dene gibi genelde örnek hazırlamadan verilebilecek fikir yürütmede yardımcı olacak cevaplar
yoksa örneksiz yapılamayacağını düşünsem kendim eklerim
siz yeter ki yol gösterin ben deneyerek uygularım
ferazın dediği şekilde arattım ve şu kodları buldum gayet güzel çalışıyor istediğiniz userforma yapıştırıp kullanabilirsiniz
Private Sub comboYukle(cmb As ComboBox)
Dim varRange() As Variant
Dim lngLastRow As Long
lngLastRow = databaseSheet.Range("B:B").Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
varRange = databaseSheet.Range("B:B").Resize(lngLastRow).Cells
subQuickSort varRange
cmb.List = varRange
End Sub
Public Sub subQuickSort(var1 As Variant, _
Optional ByVal lngLowStart As Long = -1, _
Optional ByVal lngHighStart As Long = -1)
Dim varPivot As Variant
Dim lngLow As Long
Dim lngHigh As Long
lngLowStart = IIf(lngLowStart = -1, LBound(var1), lngLowStart)
lngHighStart = IIf(lngHighStart = -1, UBound(var1), lngHighStart)
lngLow = lngLowStart
lngHigh = lngHighStart
varPivot = var1((lngLowStart + lngHighStart) \ 2, 1)
While (lngLow <= lngHigh)
While (var1(lngLow, 1) < varPivot And lngLow < lngHighStart)
lngLow = lngLow + 1
Wend
While (varPivot < var1(lngHigh, 1) And lngHigh > lngLowStart)
lngHigh = lngHigh - 1
Wend
If (lngLow <= lngHigh) Then
subSwap var1, lngLow, lngHigh
lngLow = lngLow + 1
lngHigh = lngHigh - 1
End If
Wend
If (lngLowStart < lngHigh) Then
subQuickSort var1, lngLowStart, lngHigh
End If
If (lngLow < lngHighStart) Then
subQuickSort var1, lngLow, lngHighStart
End If
End Sub
Private Sub subSwap(var As Variant, lngItem1 As Long, lngItem2 As Long)
Dim varTemp As Variant
varTemp = var(lngItem1, 1)
var(lngItem1, 1) = var(lngItem2, 1)
var(lngItem2, 1) = varTemp
End Sub
Recordset ile yapmayı denediniz mi?
İlginiz için teşekkürler
stackoverflow da bu yöntem için arama yapayım bakalım neler çıkacak