Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1540to1544
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

Checkbox als Schleife

Checkbox als Schleife
25.02.2017 08:12:21
Matthias
Hallo,
ich habe in einer Excel-Tabelle insgesamt 36 Checkboxes.
Jede dieser Checkboxes spreche ich mit "Private Sub Checkbox1_Click()", "Private Sub Checkbox2_Click()", ... an.
Sobald eine dieser Checkboxes angeklick wird, wird der zur Checkbox gehördende Zelleneintrag an eine Liste übertragen.
Beispiel:
Checkbox 1 wird angeklickgt --> Inhalt aus der Zelle "Name1" wird an die Zelle "Liste1" übertragen
Checkbox 5 wird angeklickgt --> Inhalt aus der Zelle "Name5" wird an die Zelle "Liste5" übertragen
Anschließend werden alle Listeneintragungen in einer Zelle zusammengefasst und durch "," getrennt.
Beispiel:
Die Inhalte des Bereichs "Liste" (der Bereich "Liste" entspricht den Zellen "Liste1", "Liste2", ...) werden in der Zelle "Namen2" wie folgt zusammengefasst: "InhaltListe1, InhaltListe2, InhaltListe3, ..."
Das funktioniert soweit einwandfrei.
Nun möchte ich das ganze aber als Schleife ablaufen lassen, so dass ich den unten dargestellten Codeblock nicht für jede Checkbox einzeln angeben muss.
Weis diesbezüglich jemand Rat?
Codeblock als Beispiel für Checkbox1:

Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
Range("Liste1").Value = Range("Name1").Value
Else
Range("Liste1").Value = ""
End If
Dim rngBereich As Range
Dim rngZelle As Range
Dim strName As String
Set rngBereich = Range("Liste")
For Each rngZelle In rngBereich
If rngZelle  "" Then
strName = strName & ", " & rngZelle
End If
Next
Range("Namen2") = strName
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Checkbox als Schleife
25.02.2017 08:19:56
Hajo_Zi
Ich baue keine Datei nach. Die Zeit hat schon jemand investiert.
Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.
Der Name einer hochgeladenen Mappe wird im Beitrag automatisch angezeigt, sodass es bei Verwendung von aussagekräftigen Namen leichter fällt, sie später im Ablageordner wiederzufinden und sie gedanklich einem bestimmten Thema zuzuordnen. Namen wie Test, Mappe, Beispiel usw. sind so allgemein, dass eine Zuordnung zu einem Thema unmöglich gemacht wird.
arbeite mit Klassen.
http://hajo-excel.de/vba_userform_klasse.htm

Anzeige
oder einfacher mit Doppelklick "x"
25.02.2017 14:56:20
Michael
Hi,
ich mag diese "1000" Checkboxen nicht; für simple Listen irgendwo in der Tabelle geht es auch so:
https://www.herber.de/bbs/user/111749.xlsm
Das Ding hat zwei Tabellenblätter mit unterschiedlichen Makros.
Schöne Grüße,
Michael
Auslagern des Hauptcodes
26.02.2017 10:30:47
Beverly
Hi Matthias,
du kannst den eigentlichen Code in eine Sub auslagern, sodass für jede CheckBox nur ein Einzeiler erforderlich ist - nach diesem Prinzip:
Private Sub CheckBox1_Click()
Eintragen "Liste1", "Name1", CheckBox1.Value
End Sub
Private Sub CheckBox2_Click()
Eintragen "Liste2", "Name2", CheckBox2.Value
End Sub
Private Sub CheckBox3_Click()
Eintragen "Liste3", "Name3", CheckBox3.Value
End Sub
'... usw. bis checkBox36
Sub Eintragen(strListe As String, strName As String, blnCheck As Boolean)
Dim rngBereich As Range
Dim rngZelle As Range
Dim strNamen As String
If blnCheck Then
Range(strListe).Value = Range(strName).Value
Else
Range(strListe).Value.ClearContents
End If
Set rngBereich = Range("Liste")
For Each rngZelle In rngBereich
If rngZelle  "" Then
strNamen = strNamen & ", " & rngZelle
End If
Next
Range("Namen2") = strNamen
End Sub


Anzeige
AW: Auslagern des Hauptcodes
26.02.2017 10:52:38
Matthias
Hallo,
vielen Dank für euere Antworten.
Die Klassenprogrammierung übersteigt leider meine Kenntnisse.
Ich habe es gestern Versucht, leider aber ohne Erfolg.
@Beverly. Vielen Dank für den Tipp.
Das ist eine gute Idee und erspart viel Programmcode.
Dankeschön!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige