Live-Forum - Die aktuellen Beiträge
Datum
Titel
23.04.2024 14:59:21
23.04.2024 14:47:39
23.04.2024 14:23:45
Anzeige
Archiv - Navigation
1748to1752
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

Einfügen von Checkboxen per Userform

Einfügen von Checkboxen per Userform
06.04.2020 02:07:37
Checkboxen
Hallo,
ich habe für ein Projekt eine Excel Tabelle erstellt, in der Neue Zeilen per UserForm hinzugefügt werden sollen und in einem anderen Tabellenblatt diese Zeile mit einer Checkbox markiert werden kann. Die Markierung erfolgt durch das Verknüpfen der Checkbox mit der entsprechenden Zelle in Spalte N der "Datentabelle". Soweit funktioniert auch alles, das Problem ist nur, dass wenn ich mit der UserForm mehrere Zeilen nacheinander hinzufüge, in jedem Durchlauf eine Checkbox für alle vorigen Zeilen "übereinander" gelegt werden - sprich, angenommen ich füge "NeueZeile1", "NeueZeile2" und "NeueZeile3" hinzu, dann würden in der ersten Zeile eine Checkbox mit dem Namen "NeueZeile1", in der zweiten Zeile ebenfalls die Checkbox für "NeueZeile1" und eine für "NeueZeile2" über der ersten Checkbox und in der dritten Zeile würde zusätzlich eine Checkbox für "NeueZeile3" über den ersten beiden Checkboxen liegen. Jeweils die Checkboxen für eine Zeile sind auch miteinander verknüpft, sprich, wenn ich eine markiere sind direkt auch die anderen für die entsprechende Zeile markiert.
Hier mal der Code aus dem VBA, anhand dessen das Hinzufügen geschieht, ich bitte um Verständnis, dass ich hier möglichst neutral bleiben möchte:

Dim last As Integer
last = Worksheets("Tabelle").Cells(Rows.Count, 1).End(xlUp).Row + 1
Worksheets("Tabelle").Activate
Set Box = ActiveSheet.CheckBoxes.Add(10, 10, 100, 10)
With Box
.Characters.Text = UserForm.Textbox.Value
.LinkedCell = "Tabelle!N" & last
.Top = Range("A" & last_line).Top
.Left = Range("A" & last_line).Left
End With
Unload UserForm
End Sub

Ich verstehe jetzt überhaupt nicht, warum da quasi diese Schleife durchgegangen wird und für sämtliche vorher erstellten Zeilen auch eine neue Checkbox erstellt wird. Der Fehler taucht nicht auf, wenn eine Zeile hinzugefügt wird, das Dokument geschlossen wird und anschließend erneut eine Zeile hinzugefügt wird.
Für jede Hilfe wäre ich sehr dankbar.
Beste Grüße,
Thomas

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Einfügen von Checkboxen per Userform
06.04.2020 08:43:19
Checkboxen
Hallo Thomas,
das erste, was mir hier auffällt ist, dass die Zeilenvariable last_line zumindest hier im gezeigten code-Ausschnitt offensichtlich weder gedimt noch gefüllt wird.
Oben ermittelt Du in Variable last die letzte Zeile und die Box setzt Du anhand der Variablen last_line.
Eigentlich müsste das zu einem Fehler führen...
PS: Du solltest oben mal Option Explicit setzen. Dann kann man das gut erkennen, wenn eine Variable nicht gedimt ist.
Dim last As Integer
last = Worksheets("Tabelle").Cells(Rows.Count, 1).End(xlUp).Row + 1
Worksheets("Tabelle").Activate
Set Box = ActiveSheet.CheckBoxes.Add(10, 10, 100, 10)
With Box
.Characters.Text = UserForm.Textbox.Value
.LinkedCell = "Tabelle!N" & last
.Top = Range("A" & last_line).Top
.Left = Range("A" & last_line).Left
End With
PS: Ein Schleifenverhalten kann ich an dem hier gezeigten Code nicht erkennen.
viele Grüße
Karl-Heinz
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige