AW: Danke Thorsten, das hilft super
31.07.2007 10:01:31
Oberschlumpf
Hi Wolfgang
Das Eintragen der Daten in die Tabelle wird in der For/Next-Schleife durchgeführt.
liZeile = 2
liTxtNr = 1
For liDurchlauf = 1 To 5
With ActiveSheet
.Range("B" & liZeile).Value = UFEingabe.Controls("txt" & liTxtNr).Text
.Range("C" & liZeile).Value = UFEingabe.Controls("txt" & liTxtNr + 1).Text
.Range("D" & liZeile).Value = UFEingabe.Controls("txt" & liTxtNr + 2).Text
.Range("E" & liZeile).Value = UFEingabe.Controls("txt" & liTxtNr + 3).Text
End With
liZeile = liZeile + 1
liTxtNr = liTxtNr + 4
Next
Es werden, egal, ob alle Zeiten eingetragen wurden oder nicht, immer die Werte aller Textboxen übertragen - also auch "Leerwerte".
liZeile beginnt bei 2 und bestimmt die Zeile in der Tabelle, in die eingetragen wird.
Ich habe die Textboxen umbenannt in txt1 - txt20.
liTxtNr beginnt bei 1 (txt1) und wird zuerst innerhalb des ActiveSheet-Blockes um 1 hochgezählt
"txt" & liTxtNr + 1
"txt" & liTxtNr + 2
"txt" & liTxtNr + 3
behält so aber für jeden Block seinen Ursprungswert.
Erst, wenn eine Übertragung durchgeführt wurde, wird der Ursprungswert von liTxtNr um 4 erhöht.
So ist sichergestellt, dass bei jedem Durchlauf immer die Werte der nächst vierten Textboxen übertragen werden - in die richtige Zeile.
Ich verstehe deine letzte Frage nicht. Warum soll das beliebig veränderbar sein? Dann würden die Tage mit der Tabelle ja nicht mehr übereinstimmen?
Natürlich könntest du den Code umschreiben. Da ich aber den Sinn nicht verstehe, weiß ich jetzt auch nicht, wo du umschreiben willst/sollst.
Ciao
Thorsten