Mal wieder eine Frage:
Ich spreche derzeit 22 Textboxen mit einer Schleife an. Wenn diese einen Inhalt haben, wird dieser in eine Zeile geschrieben. Soweit so gut.
Zwei Probleme:
1.
die Schleife läuft extrem langsam. Welche Optimierungsvorschläge gibt es?
2.
Aufgrund der Dauer habe ich eine Progressbox ins Boot geholt. Bei dieser ist das Problem, dass sie wenn nur die ersten 5 Textboxen gefüllt sind, insgesamt 5 Schritte hat und dann extrem schnell auf 100% hochschnellt.
Gibt es eine Möglichkeit vorher zu prüfen, wieviel Werte übertragen werden müssen und nur die nummer der gefüllten Textboxen an die Schleife zu schicken?
In meinem Skript wäre "max" also als variabel zu gestalten.
Ich freue mich über Tipps und Hinweise :)
Private Sub UserForm_Activate()
Dim n As Long, tot As Long
max = 22
ProgressOneVarietySafe.Caption = "Saving data, please wait..."
For n = 1 To max
If Len(UserForm1.Controls("TextBox" & CStr(n)).Value) > 0 Then
Sheets(Userform3.ComboBox1.Text & "_data").Cells(UserForm1.Controls("TextBox" & _
CStr(n)).Tag, UserForm1.ComboBox1.ListIndex + 3).Value = UserForm1.Controls("TextBox" & CStr(n)).Text
End If
ProgressBar n / max
Next n
Unload ProgressOneVarietySafe
If UserForm1.CheckBox1.Value = True Then
UserForm2.Show
Else
Unload UserForm1
Unload Userform3
End If
End Sub