Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
560to564
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
560to564
560to564
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Checkboxes

Checkboxes
08.02.2005 11:41:53
Eleni
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

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Checkboxes
08.02.2005 12:04:22
Josef
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!
Anzeige
AW: Checkboxes
08.02.2005 12:39:00
Eleni
Hi Josef,
Funktioniert super.
Danke, Eleni
AW: Checkboxes
Luc
Hallo Eleni,
statt gesamt=-Zeile Schleife einbauen und die Var eins...neun in ein Feld stecken:
eins --&gt wert(1),..., neun --&gt 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
AW: Checkboxes
08.02.2005 12:43:34
Eleni
Hi Luc,
Josefs Lösung funktioniert, trotzdem Danke für den tipp.
Ciao, Eleni
AW: Checkboxes - Nachtrag
Luc
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
Anzeige
AW: Checkboxes
Beni
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
Anzeige
AW: Checkboxes
Beni
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
Anzeige
AW: Checkboxes
08.02.2005 12:41:53
Eleni
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
Geschlossen, o. T.
08.02.2005 12:46:37
Eleni
o. T.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige