[Excel] Checkbox in Tabelle Übertragen

valeripf

Erfahrenes Mitglied
ich habe Kurze Frage?

ich Will 3 CheckBoxs in tabelle Übertragen in eine Zeile

Wenn einer oder mehre kästen Voll ist soll Name von Kästen übertragen
Wenn alle kästen Leer sind dann soll "*****" Übertragen
ich habe so Probiert

Code:
With DATA
If Trim(VerCheckBox1) = "" Then
Cells(lFreie, 14).Value = "*****"
Else
If VerCheckBox1.Value = True Then Cells(lFreie, 14).Value = VerCheckBox1.Caption
If VerCheckBox2.Value = True Then Cells(lFreie, 14).Value = Cells(lFreie, 14).Value & " " & VerCheckBox2.Caption
If VerCheckBox3.Value = True Then Cells(lFreie, 14).Value = Cells(lFreie, 14).Value & " " & VerCheckBox3.Caption
End If
End With

Das Problemm ist wenn Kästen Leer ist Dann ist Zeile 14 auch Leer ist!
bei Volle Funktioniert!
 
Ungetestet. Müsste aber etwa so gehen

Visual Basic:
Dim names() As String  'Array mit den Namen der Checkboxen
Dim idx  As Integer: idx = -1  'Index zum Array. Mit -1 initialisiert

'Jede Checbox prüfen -> idx um eins erhöhen: Array entsprechend erhöhen: Wert in Array schreiben
If VerCheckBox1.value Then idx = idx + 1:  ReDim Preserve names(idx):  names(idx) = VerCheckBox1.Caption
If VerCheckBox2.value Then idx = idx + 1:  ReDim Preserve names(idx):  names(idx) = VerCheckBox2.Caption
If VerCheckBox3.value Then idx = idx + 1:  ReDim Preserve names(idx):  names(idx) = VerCheckBox3.Caption

'Ausgabetext deklareiren: Wenn idx=-1: Nix ausgebene, Wenn idx = 2 (3 Einträge), dann gib **** aus. Ansonsten die Texte mit einem Leerzeichen getrennt
Dim outText As String:  outText = Switch(idx = -1, "", idx = 2, "*****", True, Join(names, " "))

'//TODO: Wert outText irgendwo ins Excel kleistern
 
Zuletzt bearbeitet:
Zurück