AccessTr.neT
ComboBoxda Sayfaları Göstermek - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Excel (https://accesstr.net/forum-microsoft-excel.html)
+--- Forum: Excel Cevaplanmış Soruları (https://accesstr.net/forum-excel-cevaplanmis-sorulari.html)
+--- Konu Başlığı: ComboBoxda Sayfaları Göstermek (/konu-comboboxda-sayfalari-gostermek.html)

Sayfalar: 1 2 3 4 5 6 7 8 9


ComboBoxda Sayfaları Göstermek - m_demir - 08/05/2020

Merhaba Arkadaşlar 
 Eklediğim Excel uygulamasında UserFom2 de ComboBox1 de Excel sayfaları aşağıdaki kodlarla gösteriyorum. 

Benim istediğim UserFom2 de ComboBox1 de ŞABLON, liste, Sayfa1 adındaki sayfalar görünmesin.

Bu konuda yardımlarınıza ihtiyacım var.

Private Sub UserForm_Initialize()
Dim syf As Worksheet, k As Byte
istenmeyen = Array("", "ŞABLON", "Sayfa1")
For Each syf In Worksheets
    For k = 1 To UBound(istenmeyen, 1)
        If istenmeyen(k) = syf.Name Then GoTo atla
    Next k
    'ListBox daki listeyi görüntüleme'
    ComboBox1.AddItem syf.Name
atla:
Next syf
For a = 4 To Sheets.Count
ListBox1.AddItem Sheets(a).Name
'ListBox daki listeyi sıralama'
Dim vaItems As Variant
    Dim i As Long, j As Long
    Dim vTemp As Variant
     
   
    'Put the items in a variant array
    vaItems = Me.ListBox1.List
   
    'Steal code from John Walkenbach’s Excel Power Programming
    'with Vba to sort the array
    For i = LBound(vaItems, 1) To UBound(vaItems, 1) - 1
        For j = i + 1 To UBound(vaItems, 1)
            If vaItems(i, 0) > vaItems(j, 0) Then
                vTemp = vaItems(i, 0)
                vaItems(i, 0) = vaItems(j, 0)
                vaItems(j, 0) = vTemp
            End If
        Next j
    Next i
   
    'Clear the listbox
    Me.ListBox1.Clear
   
    'Add the sorted array back to the listbox
    For i = LBound(vaItems, 1) To UBound(vaItems, 1)
        Me.ListBox1.AddItem vaItems(i, 0)
    Next i
Next
End Sub



RE: Comboboxda Sayfaları Göstermek - feraz - 08/05/2020

Döngüyü alttaki gibi denermisiniz.
Arraya Liste adınıda ekeyin.

For Each syf In Worksheets
   
For k = 1 To UBound(istenmeyen, 1)
       
If istenmeyen(k) <> syf.Name Then ComboBox1.AddItem syf.Name
   
Next k
 
Next syf

Yada alttakini next k  satırının üzerine alın sizin ilk eklediğiniz kodda.


ComboBox1.AddItem syf.Name



RE: ComboBoxda Sayfaları Göstermek - m_demir - 08/05/2020

Hocam ekediğiniz kodu uygulamaya çalıştım hata verdi. Eklediğim koda nası değişiklik yapılacak bilmiyorum. Yazmış olduğunuz kodu yukarıdaki koda eklermisiniz. Saygılar.


RE: ComboBoxda Sayfaları Göstermek - feraz - 08/05/2020

Kod altta
Sayfa1 ile sayfa1 eşit değil başka bir konudada yazmıştım size.




Private Sub UserForm_Initialize()
Dim syf As Worksheet, k As Byte

For Each syf In Worksheets
    If syf.Name <> "sayfa1" And syf.Name <> "liste" And syf.Name <> "ÞABLON" Then
    ComboBox1.AddItem syf.Name
    End If
Next syf
For a = 4 To Sheets.Count
ListBox1.AddItem Sheets(a).Name
'ListBox daki listeyi sýralama'
Dim vaItems As Variant
    Dim i As Long, j As Long
    Dim vTemp As Variant
     
   
    'Put the items in a variant array
    vaItems = Me.ListBox1.List
   
    'Steal code from John Walkenbach’s Excel Power Programming
    'with Vba to sort the array
    For i = LBound(vaItems, 1) To UBound(vaItems, 1) - 1
        For j = i + 1 To UBound(vaItems, 1)
            If vaItems(i, 0) > vaItems(j, 0) Then
                vTemp = vaItems(i, 0)
                vaItems(i, 0) = vaItems(j, 0)
                vaItems(j, 0) = vTemp
            End If
        Next j
    Next i
   
    'Clear the listbox
    Me.ListBox1.Clear
   
    'Add the sorted array back to the listbox
    For i = LBound(vaItems, 1) To UBound(vaItems, 1)
        Me.ListBox1.AddItem vaItems(i, 0)
    Next i
Next
End Sub



RE: ComboBoxda Sayfaları Göstermek - berduş - 08/05/2020

dilerim işinize yarar
Private Sub UserForm_Initialize()
Dim syf As Worksheet, k As Byte
Dim Ekleme As String
istenmeyen = Array("", "ŞABLON", "Sayfa1","liste")
    For k = 1 To UBound(istenmeyen, 1)
        Ekleme = Ekleme & "|" & istenmeyen(k) & "|"
    Next k

For Each syf In Worksheets
    'ListBox daki listeyi görüntüleme'
    If InStr(1, Ekleme, "|" & syf.Name & "|", 1) = 0 Then ComboBox1.AddItem syf.Name

atla:
Next syf
For a = 4 To Sheets.Count
ListBox1.AddItem Sheets(a).Name
'ListBox daki listeyi sıralama'
Dim vaItems As Variant
    Dim i As Long, j As Long
    Dim vTemp As Variant
     
   
    'Put the items in a variant array
    vaItems = Me.ListBox1.List
   
    'Steal code from John Walkenbach’s Excel Power Programming
    'with Vba to sort the array
    For i = LBound(vaItems, 1) To UBound(vaItems, 1) - 1
        For j = i + 1 To UBound(vaItems, 1)
            If vaItems(i, 0) > vaItems(j, 0) Then
                vTemp = vaItems(i, 0)
                vaItems(i, 0) = vaItems(j, 0)
                vaItems(j, 0) = vTemp
            End If
        Next j
    Next i
   
    'Clear the listbox
    Me.ListBox1.Clear
   
    'Add the sorted array back to the listbox
    For i = LBound(vaItems, 1) To UBound(vaItems, 1)
        Me.ListBox1.AddItem vaItems(i, 0)
    Next i
Next
End Sub



Re: Comboboxda Sayfaları Göstermek - m_demir - 08/05/2020

Çok teşekkürler Hocam ellerinize sağlık. Hocam siz yazacaksınız da o kod işe yaramayacak Bill Gates gibi adamsın maşallah.

Hocam ComboBox1 de girdiğiniz harfe göre sadece ilgili sayfaların adlarını ListBox1 listeliyebilirmiyiz. Saygılar.