Checkboxes

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Checkboxes von: Eleni
Geschrieben am: 08.02.2005 11:41:53

Hi Forum,

Habe ein Userform mit Multipage erstellt. Auf der einen Page kann man über Checkboxes mehrere Punkte (1 | 2 | 3 etc.) auswählen, die dann in einer einzigen Zelle mit einem Komma voneinader getrennt angegeben werden (z.B. 1, 2, 3, etc.). Der dafür vorgesehene Code sieht so aus:



If CheckBox1.Value = True Then
eins = "1"
Else: eins = ""
End If

If CheckBox2.Value = True Then
zwei = "2"
Else: zwei = ""
End If

If CheckBox3.Value = True Then
drei = "2a"
Else: drei = ""
End If

If CheckBox4.Value = True Then
vier = "3"
Else: vier = ""
End If

If CheckBox5.Value = True Then
fuenf = "3a"
Else: fuenf = ""
End If

If CheckBox6.Value = True Then
sechs = "4"
Else: sechs = ""
End If

If CheckBox7.Value = True Then
sieben = "4a"
Else: sieben = ""
End If

If CheckBox8.Value = True Then
acht = "4b"
Else: acht = ""
End If

If CheckBox9.Value = True Then
neun = "5"
Else: neun = ""
End If

gesamt = eins & ", " & zwei & ", " & drei & ", " & vier & ", " & fuenf & ", " & sechs & ", " & sieben & ", " & acht & ", " & neun

Sheets("Neu").Cells(3, 9) = gesamt



Nun habe ich aber u.U. in einer Zelle 8 Kommas und nur eine Zahl (z.B. 1, , , , , , , , ). Da ich die überflüssigen Kommata nicht nachträglich löschen kann stellt sich die Frage, ob ich evtl. den obigen Code so ummodeln bzw. einen neuen Code schreiben kann, sodass nur ein Komma gesetzt wird, wenn mehrere Zahlen per Checkbox ausgewählt wurden. Sollte nur eine Zahl angeklickt werden, soll überhaupt kein Komma in der Ausgabezelle auftauchen. Bin für jeden Lösungsvorschlag dankbar.


Ciao, Eleni

Bild


Betrifft: AW: Checkboxes von: Josef Ehrensberger
Geschrieben am: 08.02.2005 12:04:22

Hallo Eleni!

Vielleicht so!


 If CheckBox1.Value = True Then
eins = "1, "
Else: eins = ""
End If
If CheckBox2.Value = True Then
zwei = "2, "
Else: zwei = ""
End If
If CheckBox3.Value = True Then
drei = "2a, "
Else: drei = ""
End If
If CheckBox4.Value = True Then
vier = "3, "
Else: vier = ""
End If
If CheckBox5.Value = True Then
fuenf = "3a, "
Else: fuenf = ""
End If
If CheckBox6.Value = True Then
sechs = "4, "
Else: sechs = ""
End If
If CheckBox7.Value = True Then
sieben = "4a, "
Else: sieben = ""
End If
If CheckBox8.Value = True Then
acht = "4b, "
Else: acht = ""
End If
If CheckBox9.Value = True Then
neun = "5, "
Else: neun = ""
End If
gesamt = eins & zwei &  drei & vier & fuenf & sechs &  sieben & acht & neun
Sheets("Neu").Cells(3, 9) = Left(gesamt, Len(gesamt) - 2)



Gruß Sepp

P.S.: Rückmeldung nicht vergessen!


Bild


Betrifft: AW: Checkboxes von: Eleni
Geschrieben am: 08.02.2005 12:39:00

Hi Josef,

Funktioniert super.


Danke, Eleni


Bild


Betrifft: AW: Checkboxes von: Luc
Geschrieben am: 08.02.2005 12:17:18

Hallo Eleni,
statt gesamt=-Zeile Schleife einbauen und die Var eins...neun in ein Feld stecken:
eins --> wert(1),..., neun --> wert(9) -- normalerweise ist dann noch wert(0) frei
for i=1 to 9
if gesamt="" then
gesamt=wert(i)
else
gesamt=gesamt & iif(wert(i)="","",", "& wert(i))
end if
next i

Ciao Luc


Bild


Betrifft: AW: Checkboxes von: Eleni
Geschrieben am: 08.02.2005 12:43:34

Hi Luc,

Josefs Lösung funktioniert, trotzdem Danke für den tipp.


Ciao, Eleni


Bild


Betrifft: AW: Checkboxes - Nachtrag von: Luc
Geschrieben am: 08.02.2005 19:51:44

Hallo Eleni,
na sicher fkt Sepp's Lösung. Auf längere Sicht solltest du aber meinen Vorschlag nicht vergessen - es könnten ja mal festgelegte Inhalte zu Aufzählungen verbunden wdn, die du nicht erweitern kannst oder darfst. Das wäre sogar der Regelfall. Und auf Dauer kannst du dich nicht um die Programmierung von Schleifen herumdrücken, die gehören zum A und O derselben. Sonst ist dein Programm nicht viel mehr als eine Recorderaufzeichnung (da findest du auch keine Schleifen!).
Ciao Luc


Bild


Betrifft: AW: Checkboxes von: Beni
Geschrieben am: 08.02.2005 12:22:09

Hallo Eleni,
Gruss Beni



For cb = 1 To 9
If Controls("CheckBox" & CStr(cb)).Value = True Then
If cb = 1 Then gesamt = "1"
If gesamt <> "" Then gesamt = gesamt & ","
If cb = 2 Then gesamt = gesamt & "2"
If cb = 3 Then gesamt = gesamt & "2a"
If cb = 4 Then gesamt = gesamt & "3"
If cb = 5 Then gesamt = gesamt & "3a"
If cb = 6 Then gesamt = gesamt & "4"
If cb = 7 Then gesamt = gesamt & "4a"
If cb = 8 Then gesamt = gesamt & "4b"
If cb = 9 Then gesamt = gesamt & "5"
End If
Next cb
Sheets("Neu").Cells(3, 9) = gesamtFor cb = 1 To 9
If Controls("CheckBox" & CStr(cb)).Value = True Then
If cb = 1 Then gesamt = "1"
If gesamt <> "" Then gesamt = gesamt & ","
If cb = 2 Then gesamt = gesamt & "2"
If cb = 3 Then gesamt = gesamt & "2a"
If cb = 4 Then gesamt = gesamt & "3"
If cb = 5 Then gesamt = gesamt & "3a"
If cb = 6 Then gesamt = gesamt & "4"
If cb = 7 Then gesamt = gesamt & "4a"
If cb = 8 Then gesamt = gesamt & "4b"
If cb = 9 Then gesamt = gesamt & "5"
End If
Next cb
Sheets("Neu").Cells(3, 9) = gesamt


Bild


Betrifft: AW: Checkboxes von: Beni
Geschrieben am: 08.02.2005 12:23:01

Hallo Eleni,
Gruss Beni


For cb = 1 To 9
If Controls("CheckBox" & CStr(cb)).Value = True Then
If cb = 1 Then gesamt = "1"
If gesamt <> "" Then gesamt = gesamt & ","
If cb = 2 Then gesamt = gesamt & "2"
If cb = 3 Then gesamt = gesamt & "2a"
If cb = 4 Then gesamt = gesamt & "3"
If cb = 5 Then gesamt = gesamt & "3a"
If cb = 6 Then gesamt = gesamt & "4"
If cb = 7 Then gesamt = gesamt & "4a"
If cb = 8 Then gesamt = gesamt & "4b"
If cb = 9 Then gesamt = gesamt & "5"
End If
Next cb
Sheets("Neu").Cells(3, 9) = gesamt


Bild


Betrifft: AW: Checkboxes von: Eleni
Geschrieben am: 08.02.2005 12:41:53

Hi Beni,

Danke für die Lösung funktioniert auch. Nur wenn ich eine einzige Zahl wähle, steht ein Komma danach noch da. Josefs Lösung macht das nicht. Trotzdem danke.


Ciao, Eleni


Bild


Betrifft: Geschlossen, o. T. von: Eleni
Geschrieben am: 08.02.2005 12:46:37

o. T.


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Checkboxes"