Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1408to1412
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

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

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?

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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige