Moin Justin,
Du solltest vermeiden Dich in Deinem Code zu wiederholen.
Ein Array mit "Leerzeilen" in ein Array ohne "Leerzeilen" umzuschichten ist Verschwendung von Zeit und Ressource, bläht Deinen Code unnötig auf und ist ein graus zu warten - für Dich und auch für die Nachwelt.
Schleifen sollten das letzte Mittel sein. Sei fauler :)
So, genug kritisiert ;)
Kurzform:
Wenn (checkbox.value = True), dann manipuliere Zeichenkette und splitte() in ein Array [Arraymachen für Faule]
Einfachs Bespiel:
IF (chkDeckblatt.Value = True) Then
sZeichenkette = sZeichenkette & "Deckblatt;" '*** Ergebnis -> "Deckblatt;"
End If
If (chkTermine.Value = True) Then
sZeichenkette = sZeichenkette & "Termine;" '*** Ergebnis -> "Deckblatt;Termine;"
End If
usw usf
Das letzte Trennzeichen (in unserem Fall ein Semikolon) musste dann noch entfernen.
Dann via Split() in eine Variant-Variable und diese dann in Sheets(...) einsetzen.
Später könntest Dir noch überlegen über die Controls-Auflistung der Userform zu loopen, anstatt jedes einzelne Steuerelement mit einer If-Anweisung abzufragen, aber jetzt erstmal: Eins nach dem anderen.
|