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

Forumthread: ein Kontrollkästchen durch ein anderes aktivieren

ein Kontrollkästchen durch ein anderes aktivieren
24.09.2007 13:29:00
Michael
Hallo,
wie schon im Betreff genannt möchte ich ein Kontrollkästchen durch ein anders aktivieren (keine CheckBox). Folgendes Makro:

Private Sub Worksheet_Change1(ByVal Target As Range)
Dim cbHaken As ControlFormat
If ActiveSheet.Shapes("Check Box 1").ControlFormat.Value = xlOn Then
ActiveSheet.Shapes("Check Box 2").ControlFormat.Value = xlOn
End If
End Sub


leider funzt das nicht so wie gedacht. Es wäre auch schön, wenn duch deaktivierung des 1 die 2 ebenfalls inaktiv wäre.
Ich hoffe Ihr könnt mir Sagen wo mein Denkfehler liegt!
Vielen Dank im Voraus
Micha

Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ein Kontrollkästchen durch ein anderes aktivie
24.09.2007 13:34:00
Rudi
Hallo,
setze die beiden einfach gleich:
ActiveSheet.Shapes("Check Box 2").ControlFormat.Value = ActiveSheet.Shapes("Check Box 1").ControlFormat.Value
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: ein Kontrollkästchen durch ein anderes aktivie
24.09.2007 13:47:00
Michael
Hallo Rudi,
danke für den Tip, habs jetzt so eingesetzt, leider klappts immer noch nicht so recht.

Private Sub Worksheet_Change()
Dim cbHaken As ControlFormat
ActiveSheet.Shapes("Check Box 2").ControlFormat.Value = ActiveSheet.Shapes("Check Box 1"). _
ControlFormat.Value
End Sub


Micha

Anzeige
Die Zellverknüpfung des Steuerelements...
24.09.2007 14:19:00
{Boris}
Hi Micha,
...bzw. eines Formularelements löst bei Änderung kein Change-Ereignis aus.
Grüße Boris

AW: ein Kontrollkästchen durch ein anderes aktivie
24.09.2007 14:20:00
Rudi
Hallo,
der Klick auf das Kontrollkastchen löst kein Worksheet_Change aus.
Weise dem Kontrollkäschen ein Makro zu.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
Wenn es wirklich Kontrollkästchen...
24.09.2007 14:25:00
{Boris}
Hi Micha,
...und keine Checkboxes aus der Steuerelemente-Toolbox sind, dann kannst Du die Dinger auch direkt mittels der Checkboxes-Auflistung ansprechen:

Sub machs()
With Tabelle1
.CheckBoxes(2).Value = .CheckBoxes(1).Value
End With
End Sub


Grüße Boris

Anzeige
AW: Irgendwie...
25.09.2007 08:31:35
Michael
Hallo Rudi, hallo Boris
stehe ich auf dem Schlauch :o( - ich bekomme das einfach nicht hin...
hier mal eine Beispieldatei: https://www.herber.de/bbs/user/46306.xls
ich hoffe das hilft weiter...

AW: Sorry
25.09.2007 08:35:00
Michael
habe jetzt die Beiträge noch mal RICHTIG gelesen. und jetzt klappt die Sache auch.
Vielen Dank noch mal an Euch beide!
Micha

Anzeige
AW: jetzt muss ich doch noch mal...
25.09.2007 08:58:37
Michael
fragen:
in meinem testbeispiel hat das gut geplappt, dort hießen die Kästchen auch 1 und 2
in meiner richtigen Datei heißen die Kästchen 8 und 12 sowie 16 und 20
wenn ich im Code 1 und 2 gegen 8 und 12 sowie gegen 16 und 20 austausche klappt das nicht mehr.
Beispiel anbei:

Sub Checkbox()
With Tabelle5
.CheckBoxes(12).Value = .CheckBoxes(8).Value
End With
End Sub


Anzeige
Es geht um den Index...
25.09.2007 16:48:00
{Boris}
Hi Michael,
...und nicht um den Namen. Wenn Du mehrer Kontrollkästchen hast und dann ein paar wieder löschst, dann behalten die Dinger natürlich ihren Namen - z.B. Kontrollkästchen_8. Hast Du aber Nr. 1-7 gelöscht, dann sprichst Du dieses (_8) jetzt mit CheckBoxes(1) an.
Grüße Boris

Anzeige
AW: Es geht um den Index...
26.09.2007 09:42:00
Michael
Hallo Boris,
...wie finde ich den Index heraus?
Ich habe das Problem jetzt übrigens auf eine andere Art gelöst: Ich habe je Kontrollkästchen eine Checkbox (Toolbox) eingefügt, welche sich auf die gleiche Zelle wie die Kontrollkäschen beziehen. Die Checkboxen habe ich dann mit einem anderen Code verknüpft. Ist etwas umständlich aber es funktioniert. Leiser konnte ich die Kontrollkästchen aus diversen anderen Gründen nicht gleich ersetzen.
Danke für Eure Hilfe, Vielleicht könnt Ihr mir noch auf meine obige Frage antworten?
Micha

Anzeige
AW: Es geht um den Index...
26.09.2007 12:15:13
{Boris}
Hi Michael,

Sub test()
Dim Ch As CheckBox
For Each Ch In Tabelle1.CheckBoxes
MsgBox Ch.Index & " = " & Ch.Name
Next Ch
End Sub


Grüße Boris

;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Kontrollkästchen in Excel verknüpfen und aktivieren


Schritt-für-Schritt-Anleitung

Um ein Excel-Kontrollkästchen durch ein anderes aktivieren zu können, gehst du wie folgt vor:

  1. Füge zwei Kontrollkästchen ein:

    • Gehe zu "Entwicklertools" > "Einfügen" und wähle "Kontrollkästchen (Formularsteuerelemente)" aus. Füge zwei Kontrollkästchen in dein Arbeitsblatt ein.
  2. Benenne die Kontrollkästchen:

    • Klicke mit der rechten Maustaste auf jedes Kontrollkästchen, wähle "Steuerelement formatieren" und gib ihnen sinnvolle Namen, z.B. "Check Box 1" und "Check Box 2".
  3. Erstelle das Makro:

    • Öffne den VBA-Editor (Alt + F11) und erstelle ein neues Modul. Füge den folgenden Code ein:
    Private Sub Worksheet_Change(ByVal Target As Range)
       ActiveSheet.Shapes("Check Box 2").ControlFormat.Value = ActiveSheet.Shapes("Check Box 1").ControlFormat.Value
    End Sub
  4. Verknüpfe das Makro mit dem Kontrollkästchen:

    • Klicke mit der rechten Maustaste auf "Check Box 1", wähle "Makro zuweisen" und wähle dein Makro aus.
  5. Teste die Checkboxen:

    • Wenn du jetzt "Check Box 1" aktivierst oder deaktivierst, sollte "Check Box 2" entsprechend reagieren.

Häufige Fehler und Lösungen

  • Fehler: Das Makro funktioniert nicht.

    • Stelle sicher, dass die Namen der Kontrollkästchen im Code korrekt sind.
  • Fehler: Der Klick auf das Kontrollkästchen löst kein Ereignis aus.

    • Achte darauf, dass du die Kontrollkästchen aus den Formularsteuerelementen verwendest. ActiveX-Steuerelemente benötigen eine andere Handhabung.
  • Lösung: Verwende den richtigen Code.

    • Nutze den folgenden VBA-Code, um mehrere Kontrollkästchen zu aktivieren:
    Sub Checkbox()
      With Tabelle1
          .CheckBoxes(2).Value = .CheckBoxes(1).Value
      End With
    End Sub

Alternative Methoden

  • Verwendung von Zellverknüpfungen:

    • Du kannst die Kontrollkästchen auch mit Zellen verknüpfen. Klicke mit der rechten Maustaste auf das Kontrollkästchen, gehe zu "Steuerelement formatieren" und gib eine Zelle an. Dann kannst du Formeln verwenden, um andere Zellen basierend auf diesen Werten zu aktivieren.
  • Excel mehrere Kontrollkästchen einfügen:

    • Wenn du mehrere Kontrollkästchen einfügen möchtest, kannst du die oben genannten Schritte wiederholen oder die Kopierfunktion verwenden.

Praktische Beispiele

  • Beispiel 1: Zwei Kontrollkästchen verknüpfen

    Private Sub Worksheet_Change(ByVal Target As Range)
      ActiveSheet.Shapes("Check Box 1").ControlFormat.Value = ActiveSheet.Shapes("Check Box 2").ControlFormat.Value
    End Sub
  • Beispiel 2: Checkbox aktivieren, wenn ein anderer aktiv ist

    If ActiveSheet.Shapes("Check Box 1").ControlFormat.Value = xlOn Then
      ActiveSheet.Shapes("Check Box 2").ControlFormat.Value = xlOn
    Else
      ActiveSheet.Shapes("Check Box 2").ControlFormat.Value = xlOff
    End If

Tipps für Profis

  • Indexierung von Kontrollkästchen:

    • Wenn du mehrere Kontrollkästchen hast, ist es oft besser, sie über ihren Index anzusprechen, z. B. .CheckBoxes(1) statt über den Namen. Das macht den Code robuster.
  • Fehlerbehandlung einfügen:

    • Füge Fehlerbehandlungsroutinen hinzu, um sicherzustellen, dass dein Makro auch bei unerwarteten Eingaben stabil bleibt.

FAQ: Häufige Fragen

1. Wie finde ich den Index eines Kontrollkästchens? Du kannst den folgenden Code verwenden, um alle Kontrollkästchen aufzulisten und ihren Index anzuzeigen:

Sub test()
    Dim Ch As CheckBox
    For Each Ch In Tabelle1.CheckBoxes
        MsgBox Ch.Index & " = " & Ch.Name
    Next Ch
End Sub

2. Was ist der Unterschied zwischen Formularsteuerelementen und ActiveX-Steuerelementen? Formularsteuerelemente sind einfacher und schneller zu verwenden, während ActiveX-Steuerelemente mehr Flexibilität bieten, aber auch komplexer in der Handhabung sind.

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