Comboboxta kaç adet veri var

Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Comboboxta kaç adet veri var
Kod:
Private Sub UserForm_Initialize()
'Dim s1 As Worksheet: Dim s2 As Worksheet: Dim s3 As Worksheet
'Dim s4 As Worksheet: Dim s5 As Worksheet
'Set s1 = Sheets("GUN_SAT"): Set s2 = Sheets("GUN_ALS")
'Set s3 = Sheets("TANIMLAR"): Set s4 = Sheets("TSB")
'Set s5 = Sheets("AYLIK")
'Dim arrSh()
'arrSh = Array(s1.Name, s2.Name, s3.Name)
'ckBU_Klc_SfAd = Array(ckBU_sfSAT.Name, ckBU_sfALS.Name, ckBU_sfTNM.Name, ckBU_sfTSB.Name, _
                      ckBU_sfAYL.Name, ckBU_sfYIL.Name, ckBU_sfDVR.Name)  'daima bu kitapta kalacak sayfa adları
'ckBU_Klc_SfSy = UBound(ckBU_Klc_SfAd
MsgBox ckBU_Klc_SfSy
Dim i%, j%, x%
For i = 1 To Sheets.Count         '1 den son sayfaya
    For j = 0 To ckBU_Klc_SfSy    '0 Dizi indeksinden son  dizi indeksine
        'if sayfa adı dizideki sayfa adına eşitmi
        If Sheets(i).Name = ckBU_Klc_SfAd(j) Then: x = x + 1
    Next j
        If x = 0 Then
           ComboBox1.AddItem Sheets(i).Name
        End If
    x = 0
Next i
ComboBox1.ListIndex = 0
End Sub
Yukardıaki kodlar ile (' ile başlayan satırlar public değişken olup daha evvelden alıyor) dizideki sayfalar comboboxta gösterilmiyor, doğal olarak dizideki sayfalardan başka sayfa olmnayınca
combobox.aditem
hata veriyor bunu nasıl aşarım
 

N.Ziya Hiçdurmaz

Özel Üye
Katılım
28 Nisan 2007
Mesajlar
2,216
Excel Vers. ve Dili
Office 2013 TR / 32 Bit
Yanıt

Bu şekil bir deneyiniz.
Kod:
ON ERROR GOTO HATA Kodların en üstüne


EXIT SUB Kodların en altına 
HATA:
MSGBOX"Gösterilecek sayfa yok."
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
teşekkür ederim hocam ... dediğinizide yapacam ama beklerken ben şöyle bir çözüm buldum
Peki comboboxta kaç adet değer var bunu öğrenmek mümkünmü acaba?

Kod:
.........................
Dim i%, j%, x%
If ckBU_ss > ckBU_Klc_SfSy Then   'kitaptaki çalışma sayfasını dizideki ile karşılaştır
    For i = 1 To ckBU_ss         '1 den son sayfaya
        For j = 0 To ckBU_Klc_SfIx     '0 Dizi indeksinden son  dizi indeksine
            'if sayfa adı dizideki sayfa adına eşitmi
            If Sheets(i).Name = ckBU_Klc_SfAd(j) Then: x = x + 1
        Next j
            If x = 0 Then
                ComboBox1.AddItem Sheets(i).Name
            End If
        x = 0
    Next i
    ComboBox1.ListIndex = 0
Else
    ComboBox1.Value = "Gösterilecek Sayfa Yok"
End If
 

N.Ziya Hiçdurmaz

Özel Üye
Katılım
28 Nisan 2007
Mesajlar
2,216
Excel Vers. ve Dili
Office 2013 TR / 32 Bit
Yanıt

Kod:
Private Sub UserForm_Initialize()
ComboBox1.RowSource = "A1:A" & [A65536].End(3).Row
Label1 = "Veri adedi " & ComboBox1.ListCount
End Sub
 
Katılım
2 Mart 2005
Mesajlar
2,960
Excel Vers. ve Dili
ev: Ofis 2007- Win Xp
iş: Ofis 2010- Win Vista
Teşekkür ederim hocam amacıma ulaştım (en azından şimdilik)
Kod:
    cb_syf.ListIndex = (cb_syf.ListCount - 1)    'Son eklenen sayfayı comboboxta göster
 

N.Ziya Hiçdurmaz

Özel Üye
Katılım
28 Nisan 2007
Mesajlar
2,216
Excel Vers. ve Dili
Office 2013 TR / 32 Bit
Bişey değil.
 
Üst