vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Treeview-Probleme 
Autor: Chris80
Datum: 29.04.04 15:08

Hallo Zusammen!

Ich möchte aus einer Excel-Tabelle Daten herauslesen und in einem Treeview darstellen. Dies wird anhand folgenden Codes durchgeführt:

Dim InputArray As Variant
Dim InputArraySorted As Variant
Dim Flip() As Integer
 
 
Sub MakeTreeView()
Dim SortOrderBy As Integer
Sheets("Steine").Activate
Range("A3:G95").Select
GetInputArray
AddNodes
frmTreeView.Show
End Sub
 
Sub AddNodes()
 
Dim NewNode As Node
Dim OldText() As String
Dim NodeParent() As String
 
ReDim Flip(1 To UBound(InputArray, 1), 1 To UBound(InputArray, 2))
ReDim NodeParent(1 To UBound(InputArray, 1), 1 To UBound(InputArray, 2))
 
frmTreeView.TreeView1.Nodes.Clear
 
For j = 1 To UBound(InputArray, 2)
    Flip(1, j) = 1
Next
 
For i = 2 To UBound(InputArray, 1)
For j = 1 To UBound(InputArray, 2)
    If InputArray(i, j) = InputArray(i - 1, j) Then
        If j > 1 Then
            If Flip(i, j - 1) = 1 Then
                Flip(i, j) = 1
            Else
                Flip(i, j) = 0
            End If
        Else
            Flip(i, j) = 0
        End If
    Else
        Flip(i, j) = 1
    End If
Next
Next
 
For j = 1 To UBound(InputArray, 2)
    NodeCount = 1
For i = 1 To UBound(InputArray, 1)
    NodeKey = "NK" & j & NodeCount
 
       If j = 1 Then
        If Flip(i, j) = 1 Then
            Set NewNode = frmTreeView.TreeView1.Nodes.Add(, , NodeKey, _
              InputArray(i, j))
            NodeCount = NodeCount + 1
            NodeParent(i, j + 1) = NodeKey
        Else
            NodeParent(i, j + 1) = NodeParent(i - 1, j + 1)
        End If
       Else
        Debug.Print i, j, NodeKey, InputArray(i, j)
        If Flip(i, j) = 1 Then
            Set NewNode = frmTreeView.TreeView1.Nodes.Add(NodeParent(i, j), _
              tvwChild, NodeKey, InputArray(i, j))
            NodeCount = NodeCount + 1
            If j < UBound(InputArray, 2) Then NodeParent(i, j + 1) = NodeKey
        Else
            If j < UBound(InputArray, 2) Then NodeParent(i, j + 1) = NodeParent( _
              i - 1, j + 1)
        End If
       End If
Next
Next
 
End Sub
 
Sub GetInputArray()
InputArray = Selection.Value
End Sub
Nun habe ich das Problem, dass manche Zeilen weniger Daten und somit leere Zellen enthalten. Für diese leeren Zellen werden aber dennoch Nodes erzeugt. Da der Code nicht von mir ist und ich nicht gerade der VBA-Crack bin, habe ich arge Schwierigkeiten das Problem zu lösen. Gedacht habe ich mir das jeweils die Daten nur bis zur Leerzelle in der Zeile durchlaufen oder mehere Arrays eingelesen werden. Bin aber beide Male leider gescheitert....
Für Tipps oder Anstöße wäre ich sehr dankbar!

Gruß

Chris
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Treeview-Probleme635Chris8029.04.04 15:08

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel