online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon afetinci vom 17.04.2021, 13:06 Options

Lösung

Kontrollkästen automatisch einfügen

Hallo Leute,

ich habe eine Tabelle in der ich bestimmte Daten zum ausdrucken wähle. Ich benutze momentan ein Makro, dass durch einen doppelklick ein "X" in der Zelle setzt, dieses x gibt mir dann in der Spalte BX eine 1 wieder damit diese für den Druck vorgemerkt wird. Das mit dem X ist nur optisch.

Kann ich über ein Code sagen, dass wenn ich in Spalte A: einen Wert habe mir ein Kontrollkästchen in Spalte F: eingefügt wird, das wiederum beim anklicken mir eine 1 in Spalte BX setzt. Dies soll dann für 2000 Zeilen gelten.

Gruß


Antwort schreiben

Antwort 1 von Beverly vom 17.04.2021, 16:04 Options

Hi,
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim chCheckbox As CheckBox
    If Target.Column = 1 Then
        If Target.Count = 1 Then
            If Target <> "" Then
                Set chCheckbox = ActiveSheet.CheckBoxes.Add(Cells(Target.Row, 5).Left, _
                    Cells(Target.Row, 5).Top, 20, Cells(Target.Row, 5).Height)
                chCheckbox.LinkedCell = Cells(Target.Row, 76).Address
                chCheckbox.Caption = ""
            End If
        End If
    End If
End Sub

Beachte aber, dass bei einem erneuten Eintrag an der selben Stelle ein weiteres Controllkästchen eingefügt wird. Wenn dies nicht der Fall sein soll, musst du vorher prüfen, ob bereits ein Wert in der Zelle in Spalte A vorhanden ist.

Bis später,
Karin

Antwort 2 von afetinci vom 17.04.2021, 19:20 Options

kann man den Code auch so einstellen, dass wenn der Wert raus genommen wird, das Kontrollkästchen gelöscht wird.

gruß

Antwort 3 von Beverly vom 17.04.2021, 21:29 Options

Hi,

ja, das ist möglich. Laufe in einer Schleife über alle Kontrollkästchen und prüfe, ob die TopLeftCell des Kontrollkästchens mit der TopLeftCell von Cells(Target.Row, 5) übereinstimmt. Wenn ja, dann lösche es.

Bis später,
Karin

Antwort 4 von afetinci vom 23.04.2021, 13:04 Options

Hi Karin,

Sorry das ich mich so spät melde, war jedoch nicht im Büro. Mit dem Einfügen klappt es wunderbar. Kann ich aber auch sagen, dass wenn kein Wert in Spalte A ist, die Checkbox dann in der Selben Zeile gelöscht wird, also nur für die Selbe Zeile.

Ah ja noch: Die Spalte ist jetzt auf B gerutscht. :-)

Gruß und Vielen Dank für deine Antworten!!!!

afetinci

Antwort 5 von afetinci vom 23.04.2021, 13:30 Options

Hi Karin,

sorry, das ich dich nerve aber ist es auch möglich das Kontrollkästchen, Vertikal wie Horizontal zu zentrieren???

Gruß
afetinci

Antwort 6 von Beverly vom 23.04.2021, 19:58 Options

Hi,
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim chCheckbox As CheckBox
    If Target.Column = 1 Then
        If Target.Count = 1 Then
            If Target <> "" Then
                Set chCheckbox = ActiveSheet.CheckBoxes.Add(Cells(Target.Row, 2).Left, _
                    Cells(Target.Row, 2).Top, 20, Cells(Target.Row, 2).Height)
                chCheckbox.LinkedCell = Cells(Target.Row, 76).Address
                chCheckbox.Caption = ""
                chCheckbox.Left = Columns(2).Left + (Columns(2).ColumnWidth + chCheckbox.Width) / 2
            Else
                For Each chCheckbox In ActiveSheet.CheckBoxes
                    If chCheckbox.TopLeftCell.Address = Cells(Target.Row, 2).Address Then
                        chCheckbox.Delete
                        Exit For
                    End If
                Next chCheckbox
            End If
        End If
    End If
End Sub

Vertikal zentrieren kann man die CheckBoxen nicht, denn in dem Fall wenn die Zellenhöhe kleiner als die CheckBox-Höhe ist, würde sie nicht mehr in der betreffenden Zeile liegen und könnte nicht mehr ausgelesen werden.

Bis später,
Karin

Antwort 7 von afetinci vom 24.04.2021, 08:47 Options

Guten Morgen Karin,

dein Code funktioniert einwandfrei. Wenn du mir nur sagen würdest wo ich das Kästchen in 3D formatierten könnte, also auch über Code. Vielen Dank!

Gruß

Antwort 8 von Beverly vom 24.04.2021, 09:06 OptionsLösung

Lösung
Hi,

das lässt sich mit dem Makrorekorder aufzeichnen ;-))).
chCheckbox.Display3DShading = True

Bis später,
Karin

Ähnliche Themen

Neukunden automatisch in eine neues Tabellenblatt einfügen
gast57  30.10.2007 - 86 Hits - 15 Antworten

Dateinamen in automatisch in Zelle einfügen
Strauss  24.11.2007 - 73 Hits - 3 Antworten

Symbol mit VBA automatisch erstellen und einfügen
Eleve  20.12.2007 - 75 Hits - 4 Antworten

Kontrollkästen (Symbolleiste Formular)
afetinci  10.03.2009 - 148 Hits - 3 Antworten

Namen eines Tabellenblattes automatisch in eine Formel einfügen.
MoDAPF  13.03.2009 - 258 Hits - 9 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026