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

Forumthread: CheckBoxen dynamisch in eine Tabelle einfügen

CheckBoxen dynamisch in eine Tabelle einfügen
04.03.2006 10:08:56
DerSolide
Hallo,
ich erstelle dynamisch eine Liste (=Tabellenzeile, Daten in Spalte A..C, CheckBox in Spalte D) durch ein Makro.
Problem: Jede CheckBox pro Zeile soll bei Aktivierung/Deaktivierung die gleiche Aktion in der korrespondierenden Zeile durchführen.
Bemerkung: Die Zeile ist in dem Namen der CheckBox kodiert (z.B.: CheckBox_099 heißt, die CheckBox befindet sich in Zeile 99)
Frage: Kann man für ALLE CheckBoxen nur EINE Click-Routine verwenden und wenn ja, wie kann ich diese aufrufen/den Checkboxen zuordnen?
Vielen Dank im Voraus.
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Hab's gefunden, aber: Sendende CheckBox ermitteln
04.03.2006 10:43:57
DerSolide
Habe gerade herausgefunden, dass ich mit
ActiveSheet.Shapes("CheckBox_xxx").OnAction = "CheckBox_Click"
jeder CheckBox mit xxx=1...irgendwas dieselbe Click-Routine zuweisen kann.
Problem neu: Woher weis ich, welche CheckBox betätigt wurde? Gibt es die Möglichkeit, den "Sender" (ähnlich wie in VB.NET) zu ermitteln?
Vielen Dank im Voraus.
Anzeige
AW: Hab's gefunden, aber: Sendende CheckBox ermitteln
04.03.2006 10:47:32
Heiko
Hallo ?,
um dynamisch erzeugeten Controls EINE Aktion zuzuweisen nutzt man eigentlich sogennate Klassenmodule, guckst du hier http://www.online-excel.de/excel/grusel_vba.php?f=7
Wenn dir das zu aufwendig ist und deine Lösung so läuft, dann kann du mit der Funktion Caller (schau mal in der VBA Hilfe nach) erkennen von wo ein Makro gestartet wurd.
Gruß Heiko
PS: Rückmeldung wäre nett
Anzeige
Danke: Sendende CheckBox ermitteln
04.03.2006 12:18:42
Christian
Hallo Heiko,
vielen Dank für den Tipp. Die Lösung ist einfach, wenn man weis wo man suchen muss :-)

Sub CheckBox_Click()
Dim Zeile As Integer
Dim Steuerelement As CheckBox
Set Steuerelement = ActiveSheet.CheckBoxes(Application.Caller)
Zeile = Mid(Steuerelement.Name, Len("CheckBox "))
MsgBox ("Steuerelement in Zeile " & Zeile & " wurde aktiviert/deaktiviert")
End Sub

Bezüglich "Hallo ?": Macht der Gewohnheit habe ich einen Nickname verwendet und gar nicht darauf geachtet, dass man sich in diesem Forum mit einem "richtigen" Namen anspricht. Tut mir leid. So ist es natürlich viel persönlicher ;-)
Gruß,
Christian
Anzeige
OT: @ Peter
06.03.2006 18:55:26
Heiko
Hallo Peter,
ne bin ich nicht, und Chris b. hat sich an gleicher Stelle auch die Zähne ausgebissen.
Mit der Antwort von Peter H. damals konnte ich auch nicht so richtig was anfangen. Hab das ganze jetzt mal als gegeben hingenommen und muss zur Not mit der Application.OnTime Geschichte leben.
Gruß Heiko
Anzeige
Danke....
07.03.2006 16:33:08
Peter
Servus Heiko,
dann mus ich wohl auch lernen damit zu leben ;-). Gibt schlimmeres.
MfG Peter
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Dynamisches Einfügen von CheckBoxen in Excel-Tabellen


Schritt-für-Schritt-Anleitung

Um eine Checkbox in eine Excel-Tabelle einzufügen, befolge diese Schritte:

  1. Öffne die Entwicklertools: Stelle sicher, dass das Entwicklertools-Tab in Excel sichtbar ist. Aktiviere dies unter "Datei" > "Optionen" > "Menüband anpassen".

  2. Füge das Kontrollkästchen ein:

    • Gehe zu "Entwicklertools" > "Einfügen" und wähle das Kontrollkästchen (Check Box) aus.
    • Klicke in die gewünschte Zelle deiner Tabelle, um das Checkbox in Excel einzufügen.
  3. Dynamisches Einfügen von mehreren Checkboxen:

    • Erstelle ein Makro, das die Checkboxen automatisch in die gewünschten Zeilen einfügt. Hier ein Beispiel-Code:
      Sub CheckboxenEinfügen()
      Dim i As Integer
      For i = 1 To 10 ' Anzahl der Checkboxen
         ActiveSheet.CheckBoxes.Add(Cells(i, 4).Left, Cells(i, 4).Top, 15, 15).Name = "CheckBox_" & i
         ActiveSheet.CheckBoxes("CheckBox_" & i).OnAction = "CheckBox_Click"
      Next i
      End Sub
    • Führe das Makro aus, um die CheckBoxen in Excel automatisch einzufügen.
  4. Zuweisen einer Click-Routine:

    • Verwende die folgende VBA-Routine, um die Aktion für alle Checkboxen festzulegen:
      Sub CheckBox_Click()
      Dim Zeile As Integer
      Dim Steuerelement As CheckBox
      Set Steuerelement = ActiveSheet.CheckBoxes(Application.Caller)
      Zeile = Mid(Steuerelement.Name, Len("CheckBox_") + 1)
      MsgBox ("Steuerelement in Zeile " & Zeile & " wurde aktiviert/deaktiviert")
      End Sub

Häufige Fehler und Lösungen

  • Fehler: Checkbox wird nicht angezeigt.

    • Lösung: Stelle sicher, dass die Entwicklertools aktiviert sind und du die Checkbox an der richtigen Stelle in die Zelle eingefügt hast.
  • Fehler: Makro funktioniert nicht.

    • Lösung: Überprüfe, ob du die Makros in Excel aktiviert hast und dass der Code korrekt eingegeben wurde.
  • Fehler: Mehrere Checkboxen führen nicht zur gleichen Aktion.

    • Lösung: Stelle sicher, dass jede Checkbox die gleiche OnAction-Zuweisung hat, wie im Schritt-für-Schritt-Prozess beschrieben.

Alternative Methoden

Eine Möglichkeit, Checkboxen in Excel ohne VBA einzufügen, ist die Verwendung von Formularsteuerelementen:

  1. Gehe zu "Entwicklertools" > "Einfügen".
  2. Wähle das "Formularsteuerelement" Checkbox aus und füge es in die Zelle ein.
  3. Du kannst die Checkboxen dann manuell im Excel-Blatt anpassen und formatieren.

Praktische Beispiele

  1. Erstellen einer Aufgabenliste:

    • Nutze Checkboxen in einer To-Do-Liste, um Aufgaben zu markieren, die du erledigt hast. Füge für jede Aufgabe eine Checkbox in Spalte D ein.
  2. Dynamische Umfragen:

    • Erstelle eine Umfrage mit Checkboxen, um mehrere Antworten zu ermöglichen. Füge die Checkboxen in die entsprechenden Zeilen der Umfragetabelle ein.

Tipps für Profis

  • Verwende Klassenmodule: Wenn du mit vielen Checkboxen arbeitest, kann die Verwendung von Klassenmodulen die Verwaltung der Events erleichtern und den Code sauberer halten.

  • Optimiere deine Makros: Reduziere die Anzahl der Berechnungen im Makro, um die Ausführungsgeschwindigkeit zu erhöhen.

  • Gestalte die Checkboxen: Nutze das Formatierungswerkzeug, um die Checkboxen an das Design deiner Excel-Tabelle anzupassen.


FAQ: Häufige Fragen

1. Wie füge ich eine CheckBox in eine Excel-Tabelle ein?
Du kannst eine Checkbox in Excel einfügen, indem du das Entwicklertools-Tab aktivierst und dann das Kontrollkästchen aus dem Menü "Einfügen" auswählst.

2. Kann ich mehrere Checkboxen in einer Zeile automatisch einfügen?
Ja, du kannst ein VBA-Makro verwenden, um mehrere Checkboxen in einer Excel-Tabelle automatisch einzufügen.

3. Wie kann ich die Aktion einer Checkbox programmieren?
Verwende die OnAction-Eigenschaft, um eine Click-Routine für deine Checkboxen zuzuweisen, und nutze den Application.Caller, um herauszufinden, welche Checkbox aktiviert wurde.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige