266 Aufrufe
Gefragt in Tabellenkalkulation von revanchist Mitglied (236 Punkte)
Hallo in die Runde

In einer Excelmappe habe ich diverse CheckBoxen.

Bei der einen und der anderen Checkbox würde ich gerne die Größe der Kontrollkästchen – also da wo man i.d.R. das Häkchen oder ein X selbst setzt, größentechnisch ändern.

Es geht nicht um die Veränderung des Textrahmens der Checkbox.

Gibt es einen einfachen Weg (oder Trick) wie man das hinbekommen könnte?

Gruß der Revanchist

6 Antworten

0 Punkte
Beantwortet von xlking Experte (1.9k Punkte)

Hallo Revanchist,

bedaure. Die Größe von Checkboxen ist leider fix. Da kann man nichts machen. Aber du kannst dir ganz leicht selbst eine Checkbox basteln. Einfach, am besten per Makro, ein Shape vom Typ Rectangle erstellen, entsprechend formatieren und an die gewünschte Stelle schieben. Anschließend ein Makro zuweisen, das bei Click reagiert. Z.B. so:

Sub Checkbox_Erstellen()
  
  With ActiveSheet.Shapes.AddShape(msoShapeRectangle, 50, 50, 100, 100)
    .Fill.ForeColor.RGB = RGB(255, 255, 255)
    .Line.ForeColor.RGB = 0
    .Line.Weight = 6
    .TextFrame2.TextRange.Font.Name = "Wingdings"
    .TextFrame2.TextRange.Font.Fill.ForeColor.RGB = 0
    .TextFrame2.TextRange.Font.Size = .Height
    .TextFrame2.HorizontalAnchor = msoAnchorCenter
    .TextFrame2.VerticalAnchor = msoAnchorMiddle
    .OnAction = "cbxClick"
  End With
  
End Sub
Sub cbxClick()
  With ActiveSheet.Shapes(Application.Caller)
    If .TextFrame2.TextRange.Text = "ü" Then .TextFrame2.TextRange.Text = "" Else .TextFrame2.TextRange.Text = "ü"
  End With
End Sub

Anstelle des Hakens (ü) kannst du gern auch ein Kreuzchen (û) setzen.

Gruß Mr. K.

0 Punkte
Beantwortet von revanchist Mitglied (236 Punkte)
Bearbeitet von revanchist

Danke Mr. K für die schnelle Hilfe.

Habe ein bisschen mit deinem Vorschlag herumexperimentiert und bin schon fast am Ziel.
Was mir noch nicht gelungen ist, dieser Checkbox (resp. diesem Kästen mit dem Haken) zu sagen, wenn WAHR (also angeklickt) dann schreibe z.B. in Zelle H6 (6, 8) das Wort WAHR oder andernfalls wenn leer o. inaktiv das Wort FALSCH.
Oder umgekehrt weiß ich nicht wie ich dieses Kästchen ansprechen soll.
z.B. so =WENN(Checkbox_cbx=WAHR;WAHR;FALSCH) oder =WENN(CheckBoxcbx=WAHR;WAHR;FALSCH) mit Checkbox_cbx oder CheckBoxcbx kann Excel aber nichts anfangen
=> #NAME?
Hast du da für mich vlt. noch einen Tipp?

Sehe gerade, dass nach Rechtsklick sich das neue Konstrukt nicht CheckBox nennt, sondern Rechteck 1032.
Vielleicht liegt es an der Bezeichnung

Ciao der Revanchist

0 Punkte
Beantwortet von
Bearbeitet
Oder ein Häckchen!

z.b.

Vorrausgesetzter Font

Font.Name = "Marlett"

Spalte 3 Zeile 2 bis 4

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.EnableEvents = False
    Call Haken(Target.Column, Target.Row)
    Application.EnableEvents = True
End Sub

Sub Haken(CA As Long, RA As Long)
If Cells(RA, CA).Column = 3 And Cells(RA, CA).Row > 1 And Cells(RA, CA).Row < 5 Then
        If Cells(RA, CA) = Chr$(97) Then
            Cells(RA, CA) = ""
        Else
            Cells(RA, CA).Font.Name = "Marlett"
            Cells(RA, CA) = Chr$(97)
        End If
    End If
   Cells(RA, CA - 1).Activate
End Sub
0 Punkte
Beantwortet von revanchist Mitglied (236 Punkte)
Hallo Anonym

Danke für deine Bemühungen.

Aber um deinen Vorschlag umzusetzen fehlen mir leider die entsprechenden Kenntnisse.

Ich hoffe, dass mir Mr. K meine Zusatzfrage noch beantworten kann, dann wäre ich auch schon den entscheidenden Schritt weiter.

Ciao der Revanchist
0 Punkte
Beantwortet von beverly_ Experte (3.6k Punkte)

Hi,

ändere den Code von Mr. King wie folgt:

Sub cbxClick()
  With ActiveSheet.Shapes(Application.Caller)
    If .TextFrame2.TextRange.Text = "ü" Then
        .TextFrame2.TextRange.Text = ""
        Range("H6") = False
    Else
        .TextFrame2.TextRange.Text = "ü"
        Range("H6") = True
    End If
  End With
End Sub

Bis später, Karin

0 Punkte
Beantwortet von revanchist Mitglied (236 Punkte)

Danke Karin  !

...