• DİKKAT

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

Sütunda olan değerleri Comboboxta göstermesin.

Katılım
9 Mayıs 2005
Mesajlar
404
Excel Vers. ve Dili
Ofis 2016 TR 64 Bit
Merhaba,
Combobox1'de normalde 1-25 arası değerler gösteriliyor.
H sütununda 1-25 arası değerlerin bazıları tekrarlı olarak yer alıyor.
1'den 25 kadar olan diziyi combobox1'de gösterirken H sütununda olmayanlarını göstersin istiyorum.
Örneğin, H sütununda 1,1,1,14,14,14,14,14,21,21,21,21,21,21,21 değerleri var. Comboboxta 2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,22,23,24,25 gösterilmeli.
Emeklerinizden dolayı şimdiden teşekkür ederim.
 
Örnek dosya yüklerseniz,daha çabuk yanıt alabilirsiniz.:cool:
 
Örnek dosya eklendi

Userform açılırken ya da düğmeye tıklayınca (ikisinde de olabilir duruma göre ben uyarlarım) combobox'a değer olarak 1den 25e kadar olan dizi tanımlansın ancak (f:f) aralığına baksın ve bu aralıkta olanları combobox'a almasın.
Örnek dosyada comboboxun değer dizisi
1,2,3,4, 7,8,9,10,11,12, 14,15,16,17,18,19,20,21,22,23,24,25
şeklinde olmalı yani 5,6 ve 13 ü atlamalı...
 

Ekli dosyalar

Merhaba,

Aşağıdaki kodu deneyiniz.

Kod:
Private Sub CommandButton1_Click()
Set d = CreateObject("scripting.dictionary")
a = Range("F2:F" & Cells(Rows.Count, "f").End(3).Row)
For i = 1 To UBound(a)
    d(a(i, 1)) = a(i, 1)
Next i
ReDim b(1 To 1, 1 To 25)
For i = 1 To 25
    If Not d(i) >= 1 Then
        say = say + 1
        ReDim Preserve b(1 To 1, 1 To say)
        b(1, say) = i
    End If
Next i
If say > 0 Then
    ComboBox1.Clear
    ComboBox1.Column = b
    ComboBox1.ListIndex = 0
End If
End Sub
 
Benim çalışmada hata veriyor

Sayın Ziynettin
Anca deneme fırsatı bulabildim.
Yeni bir formda gayet güzel çalışıyor ama benim çalışmada kullandığımda hata veriyor. Çalışmayı ekledim...
İlgi ve emeğinize tekrar teşekkür ederim.
 

Ekli dosyalar

Son düzenleme:
Kodu bu şekilde deneyin.

Kod:
Private Sub CommandButton8_Click()
    syf = Format(no.Value, Text)
    Sheets(syf).Select
    a = Range("F2:F" & Cells(Rows.Count, "f").End(3).Row)
        Set dic1 = CreateObject("scripting.dictionary")
        For i = 1 To UBound(a)
            If a(i, 1) <> "" And Not dic1.exists(a(i, 1)) Then
                dic1(a(i, 1)) = ""
            End If
        Next i
        Set dic2 = CreateObject("scripting.dictionary")
        For i = 1 To 25
            If Not dic1.exists(i) Then
                If Not dic2.exists(i) Then
                    dic2(i) = ""
                End If
            End If
        Next i
    txttur.List = dic2.keys
    txttur.ListIndex = 0
End Sub


Kod:
Private Sub UserForm_Initialize()
 Sayfa3.Select
[COLOR="Red"] a = WorksheetFunction.CountA(Range("a1:a65000"))
'       txttur.RowSource = "a2:a" & a[/COLOR]

Formun initialize olayındaki kırmızı yazılı satırları silin ya da pasif ediniz.
 
Küçük bazı düzenleme ile sonuç gayet güzel... Tam sonucu okuldaki belgede uygulayınca bildiririm. Tekrar çok teşekkür ederim,elinize emeğinize sağlık.
 
Bu macro daha hızlı çalışır mı?

İyi akşamlar arkadaşlar,
Sayın Ziynettin son denemelerimde de macro sorunsuz çalışıyor.Teşekkür ederim.
Aşağıda belirttiğim hususta fikirlerinize ihtiyacım var.
MACRO düğmesine DOSYA adlı bir macro uyarladım. İşlevi, seçilen öğrencinin almış olduğu dosyaları f:f aralığından kontrol edip ALMADIĞI dosyaları dizi halinde göstermek.
1'den 25'e kadar olan etiketlerden alınmamış dosyaların visible durumlarını true olarak tanımlamak.
Sıkıntı şu ki, bu kodlar biraz kasıyor. Aynı işlevi daha hızlı ve kasmadan yapacak bir uyarlama nasıl olur?
 

Ekli dosyalar

  • KİTAPLIK-1.xls
    KİTAPLIK-1.xls
    1.4 MB · Görüntüleme: 3
  • macro.jpg
    macro.jpg
    151.8 KB · Görüntüleme: 5
Geri
Üst