TreeView Nesnesi

Birbirine bağlantılı dosyaları klasör ağacı yapısında göstermeye yarayan nesne.

TreeView Nesnesi

İleti#1)  Tarkan VURAL » 23 Haz 2008 11:59

Treeview denetimi, ağaç tarzında şık bir biçimde organize edilebilen klasör veya başka öğelerin hiyerarşik bir görünümünü sunar. Bu denetim genellikle treeview denetiminde seçili olan klasörün içeriğini görüntülemek için kullanılan bir list view denetimini ile bir arada kullanılır.

Çok kullanılan LineStyle özelliği düğümler arasında görüntülenen çizgilerin stillerini ayarlamak için kullanılır.
    0-treelines
    1-rootlines

Bu kod' da TreeView nesnesi üzerine kitabımızdaki sayfa adlarını alıyoruz. Alt adlar olarak da sayfalarımızda bulunan formüllü hücreleri ekliyoruz. Sayfalarınızda ne kadar formüllü hücre var ise TreeView ağacımızın sayfa adlarının yazılacağı ana dalların alt dallarına bu hücre adreslerini yazdırıyoruz.

Öncelikle Toolbox üzerine sağ tıklayıp Additional Control seçerek Microsoft TreeView Control ekleyelim.
Bir UserForm ekleyip form üzerine bir adet TreeView nesnesi, bir adet CommandButton, bir adet Label nesnesi çiziniz ve aşağıda yazılı kodları UserForm kod sayfasına geçiniz.

Kod: Tümünü seç
Private Sub UserForm_Initialize()
TreeView1.LineStyle = 1
     Call TreeView_Ornek
End Sub


Kod: Tümünü seç
Private Sub TreeView_Ornek()
     Dim ws As Worksheet
     Dim rngFormula As Range
     Dim rngFormulas As Range
     With Me.TreeView1.Nodes
          .Clear
          For Each ws In ActiveWorkbook.Worksheets
               'Sayfa adları Treeview.e ekleniyor
               .Add Key:=ws.Name, Text:=ws.Name

               'Formül var mı yok mu denetleyelim
               On Error Resume Next
               Set rngFormulas = ws.Cells.SpecialCells(xlCellTypeFormulas)
               On Error GoTo 0

               'Formüllü hücreler Treeview.e ekleniyor
               If Not rngFormulas Is Nothing Then
                    For Each rngFormula In rngFormulas
                         .Add relative:=ws.Name, _
                              relationship:=tvwChild, _
                              Key:=ws.Name & "," & rngFormula.Address, _
                              Text:="Range " & rngFormula.Address
                    Next rngFormula
               End If

               Set rngFormulas = Nothing
          Next ws
     End With
End Sub


Kod: Tümünü seç
Private Sub Treeview1_NodeClick(ByVal node As MSComctlLib.node)
Me.Label1.Caption = node.Key
End Sub



Kod: Tümünü seç
Private Sub CommandButton2_Click()
     Dim sNodes() As String

     'Treeview.de seçim yapılıp yapılmadığını denetleyelim
     If Me.Label1.Caption = vbNullString Then
          MsgBox "Seçim yapılmamış!" & vbNewLine & _
                 "Lütfen önce seçim yapınız.", vbCritical + vbOKOnly, _
                 "www.ExcelVBA.Net"
          Exit Sub
     End If

     sNodes = Split(Me.Label1, ",")

     With Worksheets(sNodes(0))
          .Activate
          'seçimden sonra seçilen, sayfadan aktif ediliyor
          If UBound(sNodes) + 1 > 1 Then
               'hücre seçiliyor
               .Range(sNodes(1)).Activate
          End If
     End With
MsgBox Label1.Caption & " formülü seçildi"
End Sub


Saygılarımızla,
Resim
www.tarkanvural.com.tr

İnnâ lillâhi ve innâ ileyhi raciûn
Şüphesiz ki; biz Allah’a âidiz ve vakti geldiğinde O’na döndürüleceğiz.

HasbunAllâhu ve nimel vekîl
Bize Allah yeter. O ne güzel vekildir.


ExcelVBA.NET' e katkıda bulunmak ister misiniz ?
Kullanıcı avatarı
Tarkan VURAL
Yönetim Kurulu
 
Adı Soyadı:Tarkan VURAL
Kayıt: 14 Haz 2008 18:27
Konum: @tarkanvural73
Meslek: LUU, Database Expert, Senior Software Specialist, Developer
Yaş: 47
İleti: 27385
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul - Beylikdüzü

Forum TreeView

Online Kullanıcılar

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 1 misafir

Bumerang - Yazarkafe