Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1692to1696
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

Excel Treeview mit Checkboxes

Excel Treeview mit Checkboxes
22.05.2019 12:36:53
Philipp
Hallo zusammen,
ich habe auf Userform1 eine Treeview1 erstellt, welche sich in der Prozedur "Userform_Initialize" aus Tabelle2 die Inhalte der Parents- und Child-Nodes holt. Das hat gut geklappt.
Nun sollen die Auswahlen in Treeview1, bei welcher die Checkboxen vor den Parents- und Child-Nodes anzeigt werden, nach Klicken auf CommandButton1 in Tabelle1 Spalte A untereinander in Zeilen geschrieben werden. Ich habe schon einiges probiert und wie wild recherchiert - leider aber ohne Erfolg.
Weiß jemand, wie der Ansatz für den entsprechenden Code lauten müsste? Falls es hilfreich wäre, könnte ich auch die entsprechende Datei hochladen.
Herzlichen Dank für alle Antworten.
Grüße vom Philipp

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel Treeview mit Checkboxes
22.05.2019 13:20:05
Nepumuk
Hallo Philipp,
eine Mustermappe wäre hilfreich, dann muss ich das nicht nachbauen.
Gruß
Nepumuk
AW: Excel Treeview mit Checkboxes
22.05.2019 13:53:24
Philipp
Hallo Nepumuk,
ich bedanke mich herzlich für die schnelle Antwort. Ich habe die Datei hier hochgeladen:
https://www.dropbox.com/s/k2h4fktvfysjdg0/TreeView_Template.xlsm?dl=0
Momentan muss die Userform noch über die VBA-Bedienfläche aufgerufen werden. Später sollte diese mit dem Öffnen des Dokuments erscheinen. In der Userform sollte in der Treeview dann die Auswahl getroffen werden und die Auswahl anschießend mit Klick auf den Command-Button "Übertragen" bestätigt werden. Dadurch sollen die ausgewählten Parent- und Child-Nodes in aufeinander folgende Zeilen ab Zelle A6 aufgeführt werden.
Toll wäre es dabei, wenn die Parent-Nodes fett und die die Child-Nodes in Standard dargestellt werden.
Bereits jetzt besten Dank für Deine Hilfe und Unterstützung.
Grüße vom Philipp
Anzeige
AW: Excel Treeview mit Checkboxes
22.05.2019 13:56:56
Philipp
Ich habe ungenau geschrieben:
Es muss heißen: "Dadurch sollen die ausgewählten Parent- und Child-Nodes in aufeinander folgende Zeilen ab Zelle A6 in Tabelle1 "Druckversion" aufgeführt werden.
Entschuldigung bitte.
AW: Excel Treeview mit Checkboxes
22.05.2019 14:42:18
Nepumuk
Hallo Philipp,
teste mal:
Private Sub CommandButton1_Click()
    Dim objNode As Node
    Dim lngRow As Long
    lngRow = 6
    With Worksheets("Druckversion")
        Call .Range("A6:A38").ClearContents
        For Each objNode In TreeView1.Nodes
            If objNode.Checked Then
                With .Cells(lngRow, 1)
                    .Value = objNode.Text
                    .Font.Bold = objNode.Parent Is Nothing
                End With
                lngRow = lngRow + 1
            End If
        Next
    End With
End Sub

Gruß
Nepumk
Anzeige
AW: Excel Treeview mit Checkboxes
22.05.2019 14:59:56
Philipp
Hallo Nepumuk,
großartige Arbeit. Vielen, herzlichen Dank. Das ist genau das Ergebnis, an dem ich Stunden erfolglos rumgebastelt habe.
Darf ich Deine Zeit vielleicht nochmal beanspruchen in diesem Zusammenhang? Die Frage lehnt sich an diesen Beitrag an: (https://www.herber.de/forum/archiv/1360to1364/1362659_TreeView_Checkboxes_Child_checked__Parents_chec.html)
Wie erreiche ich, dass wenn eine Child-Node ausgewählt wird automatisch auch die dazugehörige Parent-Node aktiviert wird. Und auch umgekehrt - egal wie viele Child-Nodes aktiviert aktiviert sind, wenn die Parent-Node deaktiviert wird, werden auch die Child-Nodes deaktiviert.
Ich habe es mit dem Code aus dem Beitrag versucht, leider ohne Erfolg.
Anzeige
AW: Excel Treeview mit Checkboxes
22.05.2019 15:24:42
Nepumuk
Hallo Philipp,
so?
Private Sub TreeView1_NodeCheck(ByVal Node As MSComctlLib.Node)
    Dim objNode As Node
    Dim lngIndex As Long
    With Node
        If .Parent Is Nothing Then
            If Not .Checked Then
                For Each objNode In TreeView1.Nodes
                    If objNode.Parent Is Node Then objNode.Checked = False
                Next
            End If
        Else
            If .Checked Then .Parent.Checked = True
        End If
    End With
End Sub

Gruß
Nepumuk
Anzeige
AW: Excel Treeview mit Checkboxes
22.05.2019 15:33:26
Philipp
Hallo Nepumuk,
wieder ein Volltreffer. Ich danke Dir vielmals! Da bemerkt man wirklich fundierte VBA-Kenntnisse.
Nun gebe ich vorerst Ruhe. Den Rest sollte ich durch probieren selbst hinbekommen. Dafür muss ich Dich nicht aufhalten.
Einen schönen Nachmittag Dir und vielen Dank nochmal für die Unterstützung.
Herzliche Grüße
vom Philipp
AW: Excel Treeview mit Checkboxes
22.05.2019 21:12:20
Philipp
Hallo Nepumuk,
ich muss doch schneller nochmal nachhaken, als mir lieb ist.
Zunächst habe ich die Prozedur "TreeView1_NodeCheck" um nachfolgende If-Anweisung erweitert, um zu erzielen: "Wenn nur die Parent-Node ausgewählt wird und Child-Nodes vorhanden sind, alle Child-Nodes ausgewählt werden." Dafür haben ich folgenden Code vor das "End With" eingefügt...
        If .Parent Is Nothing Then
If .Checked Then
For Each objNode In TreeView1.Nodes
If objNode.Parent Is Node Then objNode.Checked = True
Next
End If
End If

Wie kann ich jetzt aber die Prozedur "TreeView1_NodeCheck" auch noch so erweitern, dass:"Wenn keine Child-Node ausgewählt ist, auch die dazugehörige Parent-Node nicht ausgewählt ist - sofern Child-Nodes vorhanden sind". Müsste ich das irgendwie in folgende Richtung lösen:
If objNode.Checked = False Then
ojNode.Parent [...]
End If
Bereits jetzt nochmal Danke für die Unterstützung und Hilfe.
Anzeige
AW: Excel Treeview mit Checkboxes
24.05.2019 19:42:01
Nepumuk
Hallo Philipp,
ich kann dir leider nicht folgen. Mach das mal an einem konkreten Beispiel fest.
Gruß
Nepumuk
AW: Excel Treeview mit Checkboxes
26.05.2019 14:57:25
Nepumuk
Hallo Philipp,
war am Freitag nicht mehr so ganz fit. Jetzt nochmal gelesen und sofort verstanden.
Teste mal:
Private Sub TreeView1_NodeCheck(ByVal Node As MSComctlLib.Node)
    Dim objNode As Node
    Dim blnChecked As Boolean
    With Node
        If .Parent Is Nothing Then
            If Not .Checked Then
                For Each objNode In TreeView1.Nodes
                    If objNode.Parent Is Node Then objNode.Checked = False
                Next
            Else
                For Each objNode In TreeView1.Nodes
                    If objNode.Parent Is Node Then objNode.Checked = True
                Next
            End If
        Else
            If .Checked Then
                .Parent.Checked = True
            Else
                For Each objNode In TreeView1.Nodes
                    If objNode.Parent Is Node.Parent Then
                        If objNode.Checked Then blnChecked = True
                    End If
                Next
                If Not blnChecked Then .Parent.Checked = False
            End If
        End If
    End With
End Sub

Gruß
Nepumuk
Anzeige
AW: Excel Treeview mit Checkboxes
29.05.2019 10:06:30
Philipp
Hallo Nepumuk,
nun habe ich die vergangenen Tage gar nicht hier reingeschaut. Entschuldige bitte. Der Code ist wieder einmal genau passend. Ich danke Dir herzlich. Hiermit läuft nun alles!
Herzliche Grüße
Philipp
AW: Excel Treeview mit Checkboxes
29.05.2019 10:08:24
Philipp
Nachtrag, damit der Thread nicht mehr bei den offenen Fragen angezeigt wird. Alle Fragen wurden mit Deinem Beitrag beantwortet. Danke nochmal für die großartige Unterstützung.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige