Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1492to1496
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Daten mit Treeview darstellen

Daten mit Treeview darstellen
23.05.2016 15:09:56
Marco
Hallo Leute ich habe hier einen interessanten Eintrag über Treeview gefunden leider gibt es zu dem Thema kaum Informationen im Netz. In dem Beitrag wurde eine Beispieldatei hochgeladen.

Die Datei https://www.herber.de/bbs/user/62395.xls wurde aus Datenschutzgründen gelöscht


Diese wollte ich meinen Bedürfnissen anpassen aber ich bekomme immer einen Syntaxfehler. Anstatt jeden Namen der Arbeitsblätter inklusive der Zelle A1 in das Textfenster zu schreiben möchte ich nur die Daten aus einem Tabellenblatt einlesen z.B. A5:A2000, aber das Funktioniert nicht. Ich kann immer nur einen Zellenwert anzeigen lassen obwohl ich "A5:A2000" geschrieben habe. Wieso ist das so? Der Code sieht aktuell so aus.
Private Sub TreeView1_Click()
Dim s As String, i As Integer
With TreeView1.SelectedItem
s = .Text
i = InStr(1, s, "-", vbTextCompare)
If i > 0 Then
s = Trim(Left(s, i - 1))
End If
If .Children = False Then
Workbooks(.Parent.Text).Worksheets(s).Activate
Else
Workbooks(TreeView1.SelectedItem.Text).Activate
End If
End With
End Sub
Private Sub UserForm_Initialize()
Dim wkb As Workbook
Dim wks As Worksheet
Dim ndeMain As Node, ndeSecond As Node
Dim iCounter As Integer
With TreeView1
For Each wkb In Workbooks
iCounter = iCounter + 1
Set ndeMain = .Nodes.Add(Text:=wkb.Name)
For Each wks In wkb.Worksheets
Set ndeSecond = .Nodes.Add(relative:=ndeMain, relationship:=tvwChild, Text:=wks.Range("A5"). _
Value)
Set ndeSecond = .Nodes.Add(relative:=ndeMain, relationship:=tvwChild, Text:=wks.Range(" _
B5").Value)
ndeSecond.Sorted = True
Next wks
Next wkb
ndeMain.Expanded = True
ndeMain.Sorted = True
End With
End Sub
Grüße Marco

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten mit Treeview darstellen
23.05.2016 23:54:21
Marco
Danke Luschi den Beitrag kenne ich schon. Ich habe mir alle Beiträge hier im Forum zu dem Thema angeschaut aber ich habe es nicht auf die Reihe bekommen. Ich schaffe es nur statisch aber nicht dynamisch. So sieht aktuell meine Datei aus. Wenn mir da jemand behilflich sein könnte wäre ich da sehr dankbar.

Die Datei https://www.herber.de/bbs/user/105755.xlsm wurde aus Datenschutzgründen gelöscht


Grüße Marco

Anzeige
AW: Daten mit Treeview darstellen
24.05.2016 05:25:10
Luschi
Hallo Marco,
hier mal mein Beispiel dazu:

Die Datei https://www.herber.de/bbs/user/105756.xlsm wurde aus Datenschutzgründen gelöscht


Gruß von Luschi
aus klein-Paris

AW: Daten mit Treeview darstellen
24.05.2016 07:47:14
Marco
Wow Luschi es funktioniert perfekt es macht ja sogar mehr als ich hier überhaupt gewollt habe. Es wird sortiert und die Begriffe wie BMW und Sitz werden nicht doppelt angezeigt. Ich habe ganz anders versucht das sortier Problem zu lösen nämlich so:
    ActiveWorkbook.Worksheets("Tabelle1").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Tabelle1").AutoFilter.Sort.SortFields.Add Key:= _
Range("A3"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("Tabelle1").AutoFilter.Sort.SortFields.Add Key:= _
Range("B3"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
ActiveWorkbook.Worksheets("Tabelle1").AutoFilter.Sort.SortFields.Add Key:= _
Range("C3"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("Tabelle1").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Deine Variante ist ja viel kürzer und elegeanter. Jetzt versuche ich mal dein Makro noch um 3 Spalten zu erweitern für den Fall das es noch weiter in die Tiefe geht.
1. Frage wenn ich möchte dass das auch automatisch um die Spalten erweitert wird muss man das dann mit einer zusätzlichen schleife versehen?
2. Kann man das Treeview Fenster anstatt in einem UserForm auch direkt ohne knopfdruck in einem Tabellenblatt anzeigen lassen? Ich finde dafür nämlich kein Symbol oder muss ich das aus einem Verzeichnis erst hinzufügen?
3. Gibt es einen Befehl der es mir ermöglicht Spalte C bis Spalte F zusammengefasst als dritten Tree anzuzeigen anstatt nur Spalte C alleine? In Excel weiß ich dass das geht aber in VBA?
Aber erst mal noch ein riesen großes danke schön an dich jetzt kann ich mich total austoben =)
Viele Grüße Marco

Anzeige
AW: Daten mit Treeview darstellen
24.05.2016 10:45:43
Marco
Morgen alle, ich habe heute mit dem Beispiel von Luschi etwas rum probiert dabei ist mir aufgefallen das ich immer die Fehlermeldung "Laufzeitfehler 35603, Invalid Key" bekomme sobald ich in der Datenbank anstatt einem Buchstaben nur Zahlen angebe oder eine Leerzeile drin habe. Kann ich das irgendwie abschalten?
Grüße Marco

AW: Daten mit Treeview darstellen
24.05.2016 12:10:43
Luschi
Hallo Marco,
zu 1er prof. Lösung gehört natürlich auch eine Fehlerbehandlung (On Error ...) bzw.
Fall-Unterscheisungen (Select Case), falls es doch auftritt.
In diesem einfachen Beispiel sind ein paar Regeln zu beachten:
- alle Zellen sind vom Typ 'Text' auch wenn der Inhalt wie Zahlen aussieht
- keine Leerzellen
- keine leeren Zellinhalte, die durch Formeln entstehen
- möglichst alle zu 1nem Knoten gehörenden Fakten unmittelbar untereinander
  (nicht wie in meinem Beispiel!)
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Daten mit Treeview darstellen
24.05.2016 18:30:33
Marco
Sorry Luschi ich kann dir irgendwie nicht folgen ^^ tut mir leid. Es ist ja auch nicht unbedingt relevant. Ich werde glaube ich nie eine Zelle haben in der nur Zahlen in der ersten Spalte stehen. Leere Zellen werde ich auch nie dazwischen haben bzw. ich würde es beim öffnen der datei immer vorher per Makro sortieren lassen.
Aber nur zum Verständnis tritt der Fehler nur in der Spalte A auf, wenn eine Zelle leer oder mit Zahlen gefüllt ist? Bei den anderen Spalten ist das noch nicht der Fall gewesen.
Grüße Marco

AW: Daten mit Treeview darstellen
24.05.2016 18:39:08
Luschi
Hallo Marco,
mach doch noch mal 1 Beispiel mit den Problemchen, die zeigen, wo der Schuh drückt.
Gruß von Luschi
aus klein-Paris
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige