Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: suchen nach einem Node

suchen nach einem Node
Maxer
Hallo Leute,
ich hoffe einer von euch kann mir bei meinem Problem helfen.
ich habe ein TreeView in einer Userform. Dieser Treeview wird bei der Initialisierung der Userform aus einer Exceltabelle aufgebaut. Nun gebe ich in einer Textbox einen Namen ein der nach einem bestimmten Knoten suchen soll.
Hier ist der bisherige VBA-Code:

Private Sub CommandButton1_Click()
Dim Knoten As Node
Dim suche As String
Dim treffer As Range
suche = tb_suche_knoten.Text
With Sheets("Kostenstellenbaum")
suche = suche & "*"
Set treffer = .Columns(3).Find(suche, lookat:=xlWhole)
suche = treffer.Value
End With
TreeView1.Enabled = True
For Each Knoten In TreeView1.Nodes
If Knoten.Text = suche Then
'       Er findet den Knoten und nun soll er ihn markieren nur wie?
End If
Next
End Sub


Er findet den Knoten doch weiß ich nicht wie ich mir den gefunden Knoten nun im Treeview-element markieren kann?
Weiß das einer von euch?
Danke für die Hilfe.
Ron

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: suchen nach einem Node
02.07.2009 12:38:00
Kawensmann
Hallo,
Knoten.Selected=True
Wobei du vorher die Treeview-Eigenschaft HideSelection auf False setzen musst, damit die Makeirung sichtbar wird. Diese ist dann aber grau und nicht blau.
Gruß
Kawensmann
AW: suchen nach einem Node
02.07.2009 12:47:24
Maxer
ja super mensch. Geanu das habe ich gesucht. Und wie so oft schon lag die Lösung sehr nahe.
Noch eine Frage. Das grau ins blau umwandeln geht nicht oder?
Anzeige
;
Anzeige

Infobox / Tutorial

Knoten im TreeView mit VBA suchen und markieren


Schritt-für-Schritt-Anleitung

Um einen Knoten in einem TreeView-Element zu suchen und zu markieren, kannst Du folgenden VBA-Code verwenden. Dieser wird in einer Userform eingesetzt, die aus einer Excel-Tabelle erstellt wird.

  1. TextBox hinzufügen: Stelle sicher, dass Du eine TextBox (tb_suche_knoten) und einen CommandButton (CommandButton1) in Deiner Userform hast.

  2. Code einfügen: Füge den folgenden VBA-Code in das Code-Modul Deiner Userform ein:

    Private Sub CommandButton1_Click()
       Dim Knoten As Node
       Dim suche As String
       Dim treffer As Range
       suche = tb_suche_knoten.Text
       With Sheets("Kostenstellenbaum")
           suche = suche & "*"
           Set treffer = .Columns(3).Find(suche, lookat:=xlWhole)
           If Not treffer Is Nothing Then
               suche = treffer.Value
           Else
               MsgBox "Knoten nicht gefunden!"
               Exit Sub
           End If
       End With
    
       TreeView1.Enabled = True
       For Each Knoten In TreeView1.Nodes
           If Knoten.Text = suche Then
               Knoten.Selected = True
               Exit For
           End If
       Next
    End Sub
  3. TreeView-Eigenschaft einstellen: Stelle sicher, dass die Eigenschaft HideSelection des TreeView-Elements auf False gesetzt ist, damit die Markierung sichtbar wird, wenn Du einen Knoten auswählst.


Häufige Fehler und Lösungen

  • Fehler: Knoten nicht gefunden
    Wenn beim Suchen ein Knoten nicht gefunden wird, könnte dies an einem Schreibfehler in der TextBox liegen. Überprüfe den eingegebenen Text und stelle sicher, dass die Suche korrekt konfiguriert ist.

  • Markierung nicht sichtbar
    Wenn die Markierung des Knotens nicht sichtbar ist, kontrolliere, ob die HideSelection-Eigenschaft des TreeView auf False steht.


Alternative Methoden

Falls Du eine andere Methode bevorzugst, um Knoten in einem TreeView zu suchen und zu markieren, könntest Du auch die VBA-Methoden FindNode oder GetNode verwenden, die jedoch in vielen Fällen weniger flexibel sind als die oben beschriebene Methode.


Praktische Beispiele

Nehmen wir an, Du hast einen TreeView mit den folgenden Knoten:

  • Hauptknoten
    • Unterknoten A
    • Unterknoten B

Wenn du nun "Unterknoten A" in die TextBox eingibst und auf den Button klickst, wird dieser Knoten in Deinem TreeView ausgewählt.


Tipps für Profis

  • Verwende Wildcards (wie *), um die Suche flexibler zu gestalten. So kannst Du Teilstrings suchen und nicht nur exakte Übereinstimmungen.
  • Berücksichtige Groß- und Kleinschreibung, wenn Du die Textsuche implementierst. Dies kann durch die Verwendung der Option Compare-Anweisung am Anfang Deines Moduls gesteuert werden.

FAQ: Häufige Fragen

1. Wie kann ich die Farbe der Markierung ändern?
Die Standardfarbe der Markierung im TreeView ist grau. Es ist nicht möglich, die Farbe direkt über die Eigenschaften des TreeViews zu ändern. Du kannst jedoch die Darstellung der Knoten durch die Verwendung von Icons und benutzerdefinierten Eigenschaften anpassen.

2. Was mache ich, wenn der Knoten nicht gefunden wird?
Füge eine Fehlerbehandlung in Deinen Code ein, um den Benutzer darüber zu informieren, dass der gesuchte Knoten nicht vorhanden ist. Zum Beispiel kannst Du eine MessageBox verwenden, die eine entsprechende Nachricht anzeigt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige