Code zu langsam
17.08.2005 17:15:09
Norbert
mit dem folgenden Code übertrage ich Daten aus einer Userform in eine Tabelle.
Die Schleife sucht nach einer leeren Zeile und prüft gleichzeitig ob ein Datensatz existiert der mit dem neuen kollidiert. Solange die Anzahl der Datensätze klein ist klappt alles wunderbar. Wenn mehr als 100 Datensätze vorhanden sind dauert das Ganze ca.10 sek.
Hat jemand eine bessere Idee?
Private Sub CommandButton1_Click()
Dim rng As Range
Dim test As Integer
Call StopWatch
test = 0
If cboName = Empty Or cboGrund = Empty Or dtpAnfang = Empty Or dtpEnde = Empty Or dtpEnde < dtpAnfang Then
MsgBox " Bitte Eingaben prüfen"
Exit Sub
End If
For Each rng In Worksheets("Urlaub").Range("A2:A500").Cells
If cboName.Text = rng Then
If CDate(dtpAnfang.Value) <= CDate(rng.Offset(0, 1)) And CDate(dtpEnde.Value) >= CDate(rng.Offset(0, 1)) _
Or CDate(dtpAnfang.Value) >= CDate(rng.Offset(0, 1)) And CDate(dtpAnfang.Value) <= CDate(rng.Offset(0, 2)) Then
test = 1
MsgBox "Es existiert schon ein Datensatz in diesem Zeitraum"
End If
End If
If IsEmpty(rng) Then
If test < 1 Then
rng = cboName.Text
rng.Offset(0, 1) = dtpAnfang.Value
rng.Offset(0, 2) = dtpEnde.Value
rng.Offset(0, 3) = cboGrund.Text
MsgBox (StopWatch(False))
End
End If
End If
Next rng
End Sub
gruss Norbert