Skip to main content

AccessTr.neT


ComboBoxda Sayfaları Göstermek

ComboBoxda Sayfaları Göstermek

Çözüldü #1
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
.rar Per-6.rar (Dosya Boyutu: 265,72 KB | İndirme Sayısı: 6)
Son Düzenleme: 08/05/2020, 17:05, Düzenleyen: m_demir.
Cevapla
#2
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
Cevapla
#3
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.
Cevapla
#4
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
Cevapla
#5
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
Cevapla
#6
Ç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.
Son Düzenleme: 08/05/2020, 23:12, Düzenleyen: m_demir.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task