Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Checkbox reaktivieren (Häkchen grau hinterlegt)

Forumthread: Checkbox reaktivieren (Häkchen grau hinterlegt)

Checkbox reaktivieren (Häkchen grau hinterlegt)
10.12.2019 09:05:55
Thomas
Guten Morgen Freunde,
ich hab e eine Userform mit mehreren Checkboxen. Bei Aktivierung soll die Checkbox ein entsprechenden Wert in eine Zelle eintragen. Das habe ich wie folgt gelöst:
.Cells((lngRow, 1).Value = IIf(CheckBox1.Value, "X", "")
Jetzt habe ich das Problem das bei erneuter Öffnung der Userform die Häkchen grau hinterlegt sind. Wenn ich sie dabei belasse und dann die UF wieder schließe(wird vorher abgespeichert) dann verschwindet der Wert aus der Zelle wieder.
Wie kann ich das Problem lösen.
Würde mich über eure Hilfe freuen.
Danke und Gruß
Thomas
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Checkbox reaktivieren (Häkchen grau hinterlegt)
10.12.2019 09:19:40
Daniel
Hi
beim Starten der Userform hat die Checkbox immer den Wert, der in der Eigenschaftsliste eingetragen ist.
du müsstest also zusätzlich im Initialize-Event den umgekehrten Weg programmieren und den Wert aus der Zelle in die Checkbox schreiben:
Checkbox1.Value = (.Cells(lngRow, 1).Value = "X")
oder du freundest dich damit an, dass es auch ok ist, wenn in der Zelle nicht "X" und "" steht, sondern WAHR und FALSCH.
dann reicht es, die Checkbox über die Eigenschaft "ControlSource" mit der Zelle zu verbinden (Adresse eintragen) und das ganze funktioniert automatisch ohne VBA-Code.
Gruß Daniel
Anzeige
AW: Checkbox reaktivieren (Häkchen grau hinterlegt)
10.12.2019 09:41:50
Thomas
Hallo Daniel,
danke dir erstmal für deine Hilfe.
Ich bekomme bei folgendem Code die Fehlermeldung unzureichend definierter Verweis und "Cells" wird markiert.
Private Sub Userform_Initialize()
Dim lngRow As Long
Checkbox1.Value = (.Cells(lngRow, 1).Value = "X")
End Sub
Wie definiere ich das?
Gruß Thomas
Anzeige
AW: Checkbox reaktivieren (Häkchen grau hinterlegt)
10.12.2019 10:53:54
Thomas
Kann mir bitte jemand anders meine Frage beantworten?
Gruß Thomas
AW: Checkbox reaktivieren (Häkchen grau hinterlegt)
10.12.2019 11:23:12
Torsten
Hallo Thomas,
du musst vor .Cells das Tabellenblatt angeben.

Checkbox1.Value = (Sheets("Tabelle1").Cells(lngRow, 1).Value = "X")     'anpassen

Du kannst es auch ohne den Punkt vor dem "Cells" machen, aber dann wird das immer auf dem aktiven Blatt ausgefuehrt.
Oder wenn du es so machen willst, wie du es hast, dann brauchst du die With Anweisung:

Private Sub Userform_Initialize()
Dim lngRow As Long
With Sheets("Tabelle1")     'anpassen
Checkbox1.Value = (.Cells(lngRow, 1).Value = "X")
End With
End Sub

Gruss Torsten
Anzeige
Fehlermeldung
10.12.2019 12:28:29
Thomas
Hallo Torsten,
danke für die Antwort. Folgendes Problem taucht dann auf. Kann dann die UF nicht mehr über die Schaltfläche öffnen.
Ich lade mal eine Datei hoch. Vll hast du eine Idee an was es liegt.
Danke und Gruß Thomas
Datei
10.12.2019 12:39:18
Thomas
https://www.herber.de/bbs/user/133704.xlsm
Vorgehensweise:
1. Eingabemaske öffnen
2. In Suchfeld 5 eingeben und suchen
3. in Liste die 5 auswählen
4. CheckBox1 anklicken ( X in Spalte A)
5. Eingabemaske schließen
6. wieder öffnen und 5 suchen und anwählen
7. dann wieder schließen ohne Aktivierung der Checkbox
8. x wieder weg aus Spalte A ( soll stehen bleiben)
Wäre euch echt verbunden wenn das einer lösen kann.
Danke und Gruß
Thomas
Anzeige
AW: Checkbox reaktivieren (Häkchen grau hinterlegt)
10.12.2019 13:13:49
Daniel
Bitte Gehirn einschalten und nicht einfach nur stupide kopieren und einfügen!
Dort wo du den Checkboxwert in die Tabelle schreibst, musst du ja auch vorher dem LngRow einen Wert zugewiesen haben und eine Withklammer erstellt haben, damit der Wert ins richtige Tabellenblatt in die richtige Zelle geschrieben wird.
Das musst du dann genauso wieder einrichten, damit du auch den Wert aus der selben Zelle ausliest, in welche du ihn geschrieben hast.
Gruß Daniel
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Checkbox reaktivieren: Häkchen grau hinterlegt


Schritt-für-Schritt-Anleitung

Um die Checkbox in Deiner Userform wieder zu aktivieren und das Häkchen korrekt darzustellen, befolge diese Schritte:

  1. Öffne den VBA-Editor in Excel (Alt + F11).

  2. Navigiere zu Deiner Userform, die die Checkbox enthält.

  3. Füge im Userform_Initialize-Event den folgenden Code ein:

    Private Sub Userform_Initialize()
       Dim lngRow As Long
       lngRow = 1 ' Setze hier die Zeile, die Du verwenden möchtest
       Checkbox1.Value = (Sheets("Tabelle1").Cells(lngRow, 1).Value = "X")
    End Sub
  4. Stelle sicher, dass Du das richtige Tabellenblatt angibst, in diesem Fall "Tabelle1".

  5. Schließe den VBA-Editor und teste die Userform, um sicherzustellen, dass das Häkchen korrekt angezeigt wird.


Häufige Fehler und Lösungen

  • Fehlermeldung: unzureichend definierter Verweis

    • Achte darauf, dass Du lngRow einen Wert zuweist, bevor Du versuchst, auf Cells zuzugreifen. Beispiel:
    Dim lngRow As Long
    lngRow = 1 ' Setze die Zeile hier
  • Checkbox bleibt grau hinterlegt

    • Das könnte daran liegen, dass die Zelle in der Tabelle nicht den erwarteten Wert ("X") hat. Überprüfe den Inhalt der Zellen.
  • Excel-Fenster wird grau hinterlegt

    • Dies kann passieren, wenn Du die Userform nicht korrekt schließt. Stelle sicher, dass alle Änderungen gespeichert werden, bevor die Userform geschlossen wird.

Alternative Methoden

Wenn Du die Checkbox ohne VBA steuern möchtest, kannst Du die Eigenschaft "ControlSource" verwenden:

  1. Klicke mit der rechten Maustaste auf die Checkbox und wähle "Eigenschaften".
  2. Setze die ControlSource auf die entsprechende Zelle, z.B. Tabelle1!A1.
  3. Schließe die Eigenschaften und teste die Userform erneut.

Praktische Beispiele

Hier ist ein einfaches Beispiel, wie Du Haken in Excel einfügen und dabei die Checkbox verwenden kannst:

Private Sub CommandButton1_Click()
    Dim lngRow As Long
    lngRow = 1 ' Setze die Zeile, die Du verwenden möchtest
    If Checkbox1.Value Then
        Sheets("Tabelle1").Cells(lngRow, 1).Value = "X"
    Else
        Sheets("Tabelle1").Cells(lngRow, 1).Value = ""
    End If
End Sub

In diesem Beispiel wird beim Klicken auf einen Button der Wert in die Zelle geschrieben, abhängig vom Status der Checkbox.


Tipps für Profis

  • Verwende With-Anweisungen, um Deinen Code zu optimieren und die Lesbarkeit zu verbessern:

    With Sheets("Tabelle1")
      Checkbox1.Value = (.Cells(lngRow, 1).Value = "X")
    End With
  • Verknüpfe mehrere Checkboxen mit verschiedenen Zellen, um komplexere Eingabemasken zu erstellen.

  • Vermeide es, Zellen zu verbinden, wenn Du mit Checkboxen arbeitest, da dies zu unerwarteten Ergebnissen führen kann. Wenn Du Excel-Zellen verbinden möchtest, kann dies dazu führen, dass die Checkbox grau hinterlegt wird.


FAQ: Häufige Fragen

1. Warum ist die Checkbox grau hinterlegt? Die Checkbox ist grau hinterlegt, weil sie nicht korrekt mit einer Zelle verbunden ist oder die Zelle den erwarteten Wert nicht hat.

2. Wie kann ich die Checkbox so einrichten, dass sie beim Starten der Userform den Wert aus der Zelle übernimmt? Du kannst dies erreichen, indem Du den Wert der Zelle in das Userform_Initialize-Event einliest, wie im Schritt-für-Schritt-Beispiel gezeigt.

3. Was muss ich tun, wenn ich die Userform nicht mehr über die Schaltfläche öffnen kann? Stelle sicher, dass alle Fehler im VBA-Code behoben sind und die Userform korrekt geschlossen wird. Überprüfe auch, ob der Code in der Schaltfläche korrekt verknüpft ist.

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