Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Fixierung/Formatierung Kontrollkästchen

Fixierung/Formatierung Kontrollkästchen
09.02.2015 08:14:23
Rudolf
Hallo Forum!
Ich habe ein kleines Problem in Sachen Excel und hoffe jemand hat den entscheidenden Tipp für mich parat. Ich habe schon eine ganze Weile in verschiedensten Foren verbracht und gegoogelt aber die richtige Lösung habe ich bislang nicht finden können.
Es geht um die Anordnung von Kontrollkästchen innerhalb eines Sheets. Die Programmierung dahinter funktioniert bereits einwandfrei, aber die Kästchen wollen einfach nicht sauber an ihrer Position bleiben, verschieben sich und verändern ihre Größe. Erstaunlich dabei ist, dass das eben nur manchmal passiert. Auslöser scheint unter anderem das Drucken der Sheets zu sein. Aber nicht ausschließlich, auch nach Schließen und erneutem Öffnen kann es sein (nicht immer) das die Kästchen verschoben sind (Siehe Bilder im Anhang, habe ein Soll und die verschobenen im Ist abgebildet)
Ich habe in einem Forum gelesen, dass die "älteren" Formularsteuerelemente da anfällig sind, also habe ich alle durch Active-X Steuerelemente ersetzt. Hat nichts gebracht. Habe auch schon versucht, die Teile durch Gruppieren an ihrer Position zu halten. Hat nichts gebracht. Auch Zusammengruppieren mit Grafikelementen bringt nichts (könnte aber der Grund sein warum meine Pfeilstruktur sich ebenfalls verschiebt, aber sicher bin ich mir da auch nicht mehr). Die Seitenverhältnisse der Kontrollkästchen zu sperren bringt auch nichts. Ebenso wenig das Umschalten in den Eigenschaften der Steuerelemente unter Objektpositionierung, da habe ich auch schon alle drei Einstellungen ("von Zellposition und -größe abhängig", "nur von Zellposition abhängig" und "Von Zellposition und -größe unabhängig") durch.
Seltsam finde ich auch, dass sich nur die Kästchen-Struktur ab dem zweiten Tabellenblatt verschieben, die Kästchen auf Tabellenblatt 1 passen einwandfrei.
So langsam bin ich wirklich mit meinem Latein am Ende und sehr dankbar für weitere Tipps. Ist es nicht irgendwie möglich den Kontrollkästchen zu verklickern, dass sie komme was wolle einfach so groß und auf der Position der darunterliegenden Zellen bleiben sollen?
Der IST-Zustand (manchmal) nach Öffnen oder Drucken:
Userbild
Der SOLL-Zustand (Tabellenblatt 1 ist brav und verändert sich nicht):
Userbild
An der Stelle schon mal vielen Dank an alle, die sich mit dem Thema auseinandersetzten!
Viele Grüße
Rudi

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Fixierung/Formatierung Kontrollkästchen
09.02.2015 08:34:35
Beverly
Hi Rudi,
das Problem, dass sich Steuerelemente verschieben (Formular) und außerdem ihre Größe ändern (ActiveX), ist bekannt und eine direkte Abhilfe ist m.W nicht möglich. Man könnte die Steuerelemente höchstens per VBA immer wieder an die korrekte Position setzen, was aber durch die große Anzahl bei dir sicher problematisch ist. Du könntest aber stattdessen per Doppelklick-Ereignis mit Schriftart Windings einen Haken in die Zelle setzen. Prüfkriterium könnte sein, dass in der Zelle rechts daneben ein Inhalt steht oder diese Zelle grau ist.


Anzeige
AW: Fixierung/Formatierung Kontrollkästchen
09.02.2015 10:00:19
Rudolf
Hallo Beverly,
Erst einmal vielen Dank für deine schnelle Antwort. So was in der Art hatte ich bereits befürchtet. Wenigstens brauch ich mir nicht weiter Gedanken machen dass ich die Logik hinter der Verschieberei nicht durchblickt habe.
Ich habe vorhin etwas mit der Positionierung der Kontrollkästchen über VBA herumgespielt, aber das ist wie du gesagt hast wohl ein sehr großer Aufwand, auch wegen der Anzahl der Kästchen. Da ich auch nicht gerade der VBA-Profi bin, bin ich mir da auch unschlüssig wie ich das genau umsetzten könnte. Dein anderer Vorschlag hört sich interessant an, ich kann aber leider mit "Doppelklickereignis" nicht viel anfangen. Wenn nach doppelklick auf die Zelle ein Windings-Haken oder ähnliches erscheint wäre mir damit schon viel geholfen.
Das hier habe ich auf der Office-Website gefunden, hat den Unterschied dass sich die Zellen bei Doppelklick rot färben:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
End With
End Sub
Für meine Zwecke ist das aber leider auch nicht so wirklich brauchbar, weil jetzt ja jede Zelle auf dem Tabellenblatt rot wird sobald man doppelklickt. Kann ich das irgendwie auf meine betreffenden Zellen (die vorher Kontrollkästchen waren) beschränken?

Anzeige
AW: Fixierung/Formatierung Kontrollkästchen
09.02.2015 10:51:18
Beverly
Hi,
den eigentlichen Text, der bisher vom Kontrollkästchen angezeigt wird, müsstest du in die Zelle schreiben. Dann wird mit folgendem Code links der betreffenden Zelle ein Haken gesetzt bzw. wieder gelöscht:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
' rechts von Doppelklickzelle steht ein Inhalt
If Target.Offset(0, 1)  "" Then
' nicht Editieren
Cancel = True
' Zellinhalt ist "ü"
If Target.Value = "ü" Then
' Zellinhalt löschen
Target.ClearContents
' Zelle enthält nicht ü
Else
' horizontale Textausrichtung
Target.HorizontalAlignment = xlRight
' Schriftart Wingdings
Target.Font.Name = "Wingdings"
' ü eintragen
Target.Value = "ü"
End If
End If
End Sub


Anzeige
AW: Fixierung/Formatierung Kontrollkästchen
09.02.2015 11:15:51
Rudolf
Hallo nochmal Beverly,
habe gerade deine Antwort gesehen, ist irgendwie hier im Forum anders angeordnet als in den Foren die ich so kenne.
Vielen Dank an der Stelle, dagegen sieht meine Lösung schon etwas kindergartenmäßig aus. Aber wenn ich deinen Code 1:1 übernehme, habe ich ja keine Einschränkung auf meine bestimmten Zellen oder?

Anzeige
AW: Fixierung/Formatierung Kontrollkästchen
09.02.2015 11:23:22
Beverly
Hi,
ich kann mich nur auf deinen geposteten Tabellenausschnitt beziehen, da ich die Ausgangsmappe nicht kenne und in dem Tabellenausschnitt gibt es außer den Kontrollkästchen keinen weiteren Text. Deshalb bin ich davon ausgegangen, dass die Häkchen immer in die Zellen gesetzt werden sollen, bei denen in der rechten Nachbarzelle etwas steht (der vorherige Kontrollkästchentext).


Anzeige
AW: Fixierung/Formatierung Kontrollkästchen
09.02.2015 11:26:32
Rudolf
Jetzt hab ich unsere Lösungen kombiniert und siehe da es funktioniert perfekt :-D
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
' Beschränkung auf betreffende Zellen
If Intersect(Target, Range("C9,C17,I7,I11,I15,I19,O6,O8,O10,O12,O14,O16,O18,O20")) Is  _
Nothing _
Then Exit Sub
' Zellinhalt ist "ü"
If Target.Value = "ü" Then
' Zellinhalt löschen
Target.ClearContents
' Zelle enthält nicht ü
Else
' horizontale Textausrichtung
Target.HorizontalAlignment = xlRight
' Schriftart Wingdings
Target.Font.Name = "Wingdings"
' ü eintragen
Target.Value = "ü"
End If
End Sub
Nochmal vielen Dank für deine Mühen Beverly, jetzt ist es wirklich klasse geworden! :-D

Anzeige
AW: Fixierung/Formatierung Kontrollkästchen
09.02.2015 11:10:53
Rudolf
Ich glaube ich habs :-)
Ich habe die Zellen, auf denen vorher die unberechenbaren Kontrollkästchen waren unterteilt in die Beschreibung und ein Leerfeld, bei dem per Doppelklick-Ereignis ein "X" auftaucht. Ich konnte das ganze auch per VBA auf die betreffenden Zellen eingrenzen, damit nicht auf dem kompletten Sheet "X"e erscheinen wenn man rumklickt. Hier der betreffende Code, falls es jemanden interessiert:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Intersect(Target, Range("C9,C17,I7,I11,I15,I19,O6,O8,O10,O12,O14,O16,O18,O20")) Is Nothing  _
Then Exit Sub
Target.Value = "X"
End Sub
Das hat auch den Schritt erheblich vereinfacht, wo ich die dahinter angeordneten Zellen (mit "a" bis "e" beschriftet bei entsprechender Auswahl rot einfärbe. Ging dann ganz einfach über bedingte Formatierung :-)
Fazit: Funktioniert, allerdings nicht so elegant wie ursprünglich angedacht. Es bleibt nur die fade Erkenntnis, dass ich viel Arbeit umsonst in die Kontrollkästchen investiert habe :-/
Vielen Dank nochmal Beverly für die tolle Hilfe! :-D
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Kontrollkästchen in Excel fixieren und formatieren


Schritt-für-Schritt-Anleitung

  1. Kontrollkästchen einfügen:

    • Gehe zur Registerkarte „Entwicklertools“ und klicke auf „Einfügen“. Wähle das Kontrollkästchen aus den Formularsteuerelementen oder ActiveX-Steuerelementen.
  2. Kontrollkästchen positionieren:

    • Platziere das Kontrollkästchen in der gewünschten Zelle. Um die Größe zu fixieren, gehe mit der rechten Maustaste auf das Kontrollkästchen und wähle „Größe und Eigenschaften“.
  3. Objektpositionierung anpassen:

    • Wähle die Option „Von Zellposition und -größe abhängig“ aus, um zu verhindern, dass sich die Kontrollkästchen beim Verschieben der Zellen verlagern.
  4. VBA zur Fixierung verwenden:

    • Wenn die Kontrollkästchen sich weiterhin verschieben, kannst du ein VBA-Skript verwenden, um die Position der Kontrollkästchen nach einem bestimmten Ereignis (z.B. Doppelklick) zu fixieren. Füge den folgenden Code in das entsprechende Arbeitsblattmodul ein:
    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
       If Not Intersect(Target, Range("C9,C17,I7,I11,I15,I19,O6,O8,O10,O12,O14,O16,O18,O20")) Is Nothing Then
           ' Setze hier die Position und Größe der Kontrollkästchen zurück
       End If
    End Sub
  5. Kontrollkästchen formatieren:

    • Klicke mit der rechten Maustaste auf das Kontrollkästchen und wähle „Steuerelement formatieren“. Hier kannst du die Schriftart, die Hintergrundfarbe und andere Eigenschaften anpassen.

Häufige Fehler und Lösungen

  • Problem: Kontrollkästchen verschieben sich nach dem Drucken oder Schließen der Datei.

    • Lösung: Stelle sicher, dass die Objektpositionierung korrekt eingestellt ist und nutze gegebenenfalls VBA, um die Position zu fixieren.
  • Problem: Kontrollkästchen ändern ihre Größe.

    • Lösung: Überprüfe die Einstellungen für die Objektpositionierung und stelle sicher, dass die Größe der Zelle nicht verändert wird.
  • Problem: Unterschiedliche Verhaltensweisen zwischen Formularsteuerelementen und ActiveX-Steuerelementen.

    • Lösung: In vielen Fällen sind Formularsteuerelemente einfacher zu handhaben, während ActiveX-Steuerelemente mehr Flexibilität bieten, aber auch anfälliger für Probleme sind.

Alternative Methoden

  • Excel Zelle als Checkbox formatieren: Statt ein Kontrollkästchen zu verwenden, kannst du auch die Schriftart „Wingdings“ nutzen, um ein Häkchen in einer Zelle darzustellen. Dies könnte eine einfachere Lösung sein, wenn du nur eine visuelle Markierung benötigst.

  • Verwende VBA für dynamische Anpassungen: Mit VBA kannst du komplexere Interaktionen und Formatierungen für Kontrollkästchen und Zellen erstellen. Dies ist besonders nützlich, wenn du viele Kästchen auf einmal verwalten möchtest.


Praktische Beispiele

  • Beispiel für ein Doppelklick-Ereignis: Setze ein Häkchen in der Zelle mit einem Doppelklick:

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
       If Not Intersect(Target, Range("C9,C17,I7,I11")) Is Nothing Then
           If Target.Value = "ü" Then
               Target.ClearContents
           Else
               Target.Font.Name = "Wingdings"
               Target.Value = "ü"
           End If
           Cancel = True
       End If
    End Sub
  • Beispiel für bedingte Formatierung: Wenn du eine Zelle mit einem „X“ markierst, kannst du die dahinterliegenden Zellen rot einfärben:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Not Intersect(Target, Range("C9,C17,I7,I11")) Is Nothing Then
           If Target.Value = "X" Then
               Target.Offset(0, 1).Interior.Color = RGB(255, 0, 0) ' Rot
           End If
       End If
    End Sub

Tipps für Profis

  • Verwende Gruppen: Organisiere deine Kontrollkästchen in Gruppen, um sie einfacher zu verwalten und zu formatieren.

  • Bedingte Formatierungen nutzen: Verwende bedingte Formatierungen, um visuelle Hinweise zu geben, wenn ein Kontrollkästchen aktiviert ist.

  • Regelmäßige Überprüfung: Überprüfe regelmäßig die Position und Größe der Kontrollkästchen, insbesondere nach größeren Änderungen an deinem Arbeitsblatt.


FAQ: Häufige Fragen

1. Wie kann ich ein Kontrollkästchen in einer Zelle fixieren? Du kannst die Objektpositionierung auf „Von Zellposition und -größe abhängig“ einstellen, um das Kontrollkästchen an der Zelle zu fixieren.

2. Was ist der Unterschied zwischen Formularsteuerelementen und ActiveX-Steuerelementen? Formularsteuerelemente sind einfacher zu handhaben und weniger fehleranfällig, während ActiveX-Steuerelemente mehr Flexibilität bieten, aber auch anfälliger für Probleme sein können.

3. Wie kann ich ein Kontrollkästchen in eine Zelle umwandeln? Du kannst die Schriftart der Zelle auf „Wingdings“ ändern und ein entsprechendes Zeichen verwenden, um eine Checkbox darzustellen.

4. Kann ich mehrere Kontrollkästchen gleichzeitig formatieren? Ja, du kannst mehrere Kontrollkästchen gleichzeitig auswählen und dann die Formatierung anpassen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige