Skip to main content

AccessTr.neT


Listbox İle İlgili Sayfaya Gitmek

Listbox İle İlgili Sayfaya Gitmek

#11
(13/06/2019, 20:53)halily yazdı:
(13/06/2019, 14:59)nightashes yazdı: * Bu arada büyük harf küçük harf duyarlı sanırım. Nasıl kaldırabiliriz. Yani "Ana" yazmak gerekiyor arama için tam eşleşme istiyor. "ana" diye yazsak da sonuç gelmesi için ne yapmak gerek.

Büyük/küçük harf duyarlı değil diye biliyorum ama bazı Türkçe karakterlerde -İ,ı- sorun çıkartıyor ama "ana" da yazılsa "Ana" da bende sorun çıkarmadı
____________________________________________________oOo______________________________________________________
(13/06/2019, 13:33)nightashes yazdı: 1- İkinci forma listeden aldığım bilgiler verdiğim aralığı alıyor fakat istediğim son satırda bitmesi. Çünkü listede boş satırlarda görünmekte ve bu listeyi çok uzun tutmakta.
Private Sub UserForm_Initialize()
Dim sayfa As Worksheet
Dim SonSatir As Long
   SonSatir = Worksheets("Liste-Maliyet").Cells(4, 3).End(xlDown).Row
ListBox1.Clear
ListBox1.ColumnCount = 1
ListBox1.ColumnWidths = "50"
For Each sayfa In Worksheets
ListBox1.AddItem sayfa.Name
Next
With ListBox2
   Do While .ListCount > 0
     .RemoveItem 0
   Loop
 End With

ListBox2.List = Worksheets("Liste-Maliyet").Range("B4:C" & SonSatir).Value
End Sub
____________________________________________________oOo______________________________________________________
(13/06/2019, 13:33)nightashes yazdı: 2- Örnek dosyaya bakarsanız sayfa adlarını ikinci listemde bulunan birinci sutundaki kodlara göre açtım. Bu şekilde yapmak istediğim, eğer o koddaki ürünün sayfası varsa birinci listede bulsun ve hatta o sayfaya gitsin. Eğer sayfa yoksa sayfa bulunamadı gibi bir uyarı verebilir.
Private Sub ListBox2_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Dim syfAdi As String
On Error Resume Next
syfAdi = ListBox2.Value
If WorkSheetExists(syfAdi) Then ActiveWorkbook.Sheets(syfAdi).Activate Else MsgBox ("Sayfa mevcut değil")
End Sub
Function WorkSheetExists(ByVal strName As String) As Boolean
  On Error Resume Next
  WorkSheetExists = Not ActiveWorkbook.Worksheets(strName) Is Nothing
End Function
____________________________________________________oOo______________________________________________________
(13/06/2019, 13:33)nightashes yazdı: 3- Listboxların üstüne textbox koydum ki istediğim zaman aratma yapabileyim ama bunuda aktif bir hale getiremedim. Acaba text.box a göre arama yı nasıl sağlayabilirim.
Private Sub TextBox1_Change()

Dim sayfa As Worksheet
Dim syfAdi, txtArama As String

ListBox1.Clear
ListBox1.ColumnCount = 1
ListBox1.ColumnWidths = "50"
For Each sayfa In Worksheets
   syfAdi = sayfa.Name
   txtArama = Me.TextBox1.Text
   If InStr(1, syfAdi, txtArama, 1) > 0 Then ListBox1.AddItem sayfa.Name
Next
End Sub

Private Sub TextBox2_Change()

Dim bolge As Range
Dim SonSatir As Long
   SonSatir = Worksheets("Liste-Maliyet").Cells(4, 3).End(xlDown).Row + 4
Dim iCount As Long
'Boşsa______________________________
If Len(Me.TextBox2.Text) = 0 Then
   ListBox2.List = Worksheets("Liste-Maliyet").Range("B4:C" & SonSatir).Value
   Exit Sub
End If
'Boşsa______________________________bitti

Set bolge = Worksheets("Liste-Maliyet").Range("B4:C" & SonSatir)
iCount = 0
ListBox2.Clear
   With bolge
   Dim C As Range
   Set C = .Find(TextBox2.Text, LookIn:=xlValues)
   If Not C Is Nothing Then
       Dim FirstAddress As String, Rslt As String
       FirstAddress = C.Address
       Do
           ListBox2.AddItem
           ListBox2.List(iCount, 0) = Worksheets("Liste-Maliyet").Range("B" & C.Row)
           ListBox2.List(iCount, 1) = Worksheets("Liste-Maliyet").Range("C" & C.Row)
           iCount = iCount + 1
           Set C = .FindNext©
       Loop While C.Address <> FirstAddress
       End If
       End With

End Sub
____________________________________________________oOo______________________________________________________
4. sorunuzun yanıtını henüz bulamadım
dilerim işinize yarar

Bu harika cevaplar için teşekkür ederim. Her bir kod dediğiniz gibi işe yaramakta. Ve tam istediğim gibi oldu. Çok teşekkürler.
Bir tek dördüncü soru kaldı. Buda işin süsü zaten. Diğer kısımlar işin önemli tarafları idi ve sayenizde hallettim. Tekrar tekrar çok teşekkürler.
Alıntı:Her şey bir fikirle başlar.
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da

Bu Konudaki Yorumlar
Listbox İle İlgili Sayfaya Gitmek - Yazar: nightashes - 13/06/2019, 13:33
Cvp: Listbox İle İlgili Sayfaya Gitmek - Yazar: nightashes - 17/06/2019, 14:41