online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon moliga vom 01.10.2021, 19:40 Options

checkbox erstellen

Hallo,

ich hab gesucht und nichts gefunden :-(
habe eine UserForm durch die ich datensätze in eine Tabelle schreiben.
und wenn ein neuer datensatz dukommt, wollte ich in Spalte A und aktuelle (unterste) Zeile eine Checkbox eingebettet werden und diese auch in der Zeile 125 mit Checkbox125 benannt werden.

Kann mir jemand helfen, da ich die benennung nich hinbekomme.

Danke


Antwort schreiben

Antwort 1 von moliga vom 02.10.2021, 06:06 Options

habe folgendes gefunden.

Sub Checkbox()
Dim ooCheckBox As OLEObject

Z = 184
x = 1

With Worksheets("Catalog").Cells(Z, x)
Set ooCheckBox = ActiveSheet.OLEObjects.Add _
(ClassType:="Forms.CheckBox.1", _
Left:=Worksheets("Catalog").Cells(Z, x).Left, _
Top:=Worksheets("Catalog").Cells(Z, x).Top, _
Width:=Worksheets("Catalog").Cells(Z, x).Width, _
Height:=Worksheets("Catalog").Cells(Z, x).Height)
With ooCheckBox.Object
.Caption = " "
.BackColor = vbWhite
End With
ooCheckBox.Name = "CheckBox" & Z
End With


End Sub

Problem ist nur, wie kann ich diese Boxen löschen oder, dass wenn schon eine in der Zelle vorhanden ist, dass keine mehr eingefügt werden muss.

Schön wäre es auch, wenn mir jemand sagen könnte, wie ich so eine Zelle Abfrage. Also Wenn die Zelle angeklickt ist, dann ....

Danke und viele Grüße

Antwort 2 von coros vom 02.10.2021, 08:00 Options

Hallo Moliga,

mal eine kleine Beispieldatei, die Du Dir unter http://www.excelbeispiele.de/Beispiele_Supportnet/CheckBoxen_einfue... herunterladen kannst.

Das Makro "Nur_Test" ist nur für dieses Beispiel. Das eigentliche Makro ist das Makro "CheckBoxen_einfuegen".

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 3 von moliga vom 02.10.2021, 08:30 Options

schon mal vielen Dank..

und könntest du mir auch sagen, wie der code ausschaut, wenn ich erst schauen will, ob es eine Checkbox12 gibt . und wenn es eine gibt, dann eine weitere abfrage. Wenn die Checkbox12 aktiviert ist, dann in die gleiche zelle ja schreiben.

Vielen Dank

Antwort 4 von coros vom 02.10.2021, 08:37 Options

Hallo moliga,

wie soll es eine 2. CheckBox12 geben, wenn diese bereits in Zeile 12 eingefügt wurde? Das geht wohl nicht oder, da ja jede CheckBox den Namen "CheckBox" und Zeile, in der sie eingefügt wurde, erhält?


MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 5 von Moliga vom 02.10.2021, 08:53 Options

ich brauche diese VBA für folgendes
In der Tabelle habe ich Datensätze die ich über eine Userform reinschreibe. Wenn immer ein neuer Datensatz dazukommt, soll davor eine Checkbox (aktiviert) eingefügt werden mit "Checkbox" & zeile.
Das funktioniert.

Wenn ich aber eine Zeile mal lösche, verschiebt sich alles eins nach oben und z.b. Zeile 25 hat dann in der Spalte A die Checkbox 26 usw.

und deshalb suche ich nach einer möglichkeit, dass wenn eine Zeile gelöscht ist, der Wert in der Checkbox zwar bleibt, aber der Name zu der Zelle angepasst wird.

Desweiteren will ich dann, dass wenn die Checkbox aktiviert ist, das makro dann die Celle(Z, 5) kopiert.

hoffe ich konnte dir meine Vorstellungen ungefähr erklären..

Grüße

Antwort 6 von coros vom 02.10.2021, 09:00 Options

Hallo Moliga,

keine Ahnung, was genau Du erreichen möchtest, vor allem weil ich Deine Datei nicht kenne. Aber das kann mir ja auch egal sein und ich mache mir darüber keine Gedanken.
Nachfolgendes Makro macht das, was Du Dir vorstellst. Das Makro ist auf meine Beispieldatei aus AW2 bezogen.

Sub CheckBoxen_einfuegen()
Dim lngLastRow As Long
Dim lngRow As Long
Dim dblRowHeight As Double
Dim objCheckBox As OLEObject
Dim objOleObejkt As OLEObject
Dim bolObjektVorhanden As Boolean

bolObjektVorhanden = False
dblRowHeight = 0.75

lngLastRow = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row

For lngRow = 2 To lngLastRow
    dblRowHeight = dblRowHeight + Cells(lngRow, 1).RowHeight
Next

For Each objOleObejkt In ActiveSheet.OLEObjects
    If objOleObejkt.Name = "CheckBox" & lngLastRow Then
        bolObjektVorhanden = True
        If objOleObejkt.Object.Value = True Then Cells(lngLastRow, 1) = "Ja"
        Exit For
    End If
Next

If bolObjektVorhanden = False Then
    Set objCheckBox = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _
            DisplayAsIcon:=False, Left:=Columns(1).ColumnWidth * 2.5, Top:=dblRowHeight, _
            Width:=14.25, Height:=15)
    
    objCheckBox.Name = "CheckBox" & lngLastRow

    Set objCheckBox = Nothing
End If
End Sub


MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 7 von Moliga vom 02.10.2021, 09:03 Options

Vielen Dank für deine Mühe.

Antwort 8 von coros vom 02.10.2021, 09:09 Options

Hallo Moliga,

gerne geschehen. Danke auch für die Rückmeldung.

MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Ähnliche Themen

Verknüpfung CheckBox via Makro mit einer anderen CheckBox
michael12345  03.09.2008 - 44 Hits - 1 Antwort

Checkbox
FlAsHdRiVe  16.10.2008 - 63 Hits - 10 Antworten

Excel - checkbox
chizzle  28.10.2008 - 75 Hits - 1 Antwort

Checkbox-Eigenschaften einsehen
Philipp81  27.02.2009 - 159 Hits - 4 Antworten

Excel/VBA: Checkbox-Größe fixieren
Thorsten81  11.03.2009 - 670 Hits - 3 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