26.01.2015, 10:31
Hallo Zusammen,
der folgende Code läuft über eine Tabelle mit 40000 Zeilen und gibt Werte zurück welche in eine Form eingetragen werden. Leider geht hierbei die Performance zu sehr in die Knie. Dazu reichen meine VBA Kenntnisse nicht für einen besseren Code aus. Hat jemand eine Idee wie ich den Code umschreiben könnte damit die Performance besser wird?
der folgende Code läuft über eine Tabelle mit 40000 Zeilen und gibt Werte zurück welche in eine Form eingetragen werden. Leider geht hierbei die Performance zu sehr in die Knie. Dazu reichen meine VBA Kenntnisse nicht für einen besseren Code aus. Hat jemand eine Idee wie ich den Code umschreiben könnte damit die Performance besser wird?
Code:
Private Sub cmd_ums2014_Click()
Dim i3 As Double
For i3 = 1 To 40000
If Worksheets("umsätze").Cells(i3, 1) = Me.txtDebnr And Worksheets("umsätze").Cells(i3, 2) = "01" Then
Frm_Start.txt_og1.Value = Worksheets("umsätze").Cells(i3, 3)
Frm_Start.txt_2013_OG1.Value = Worksheets("umsätze").Cells(i3, 4)
End If
If Worksheets("umsätze").Cells(i3, 1) = Me.txtDebnr And Worksheets("umsätze").Cells(i3, 2) = "02" Then
Frm_Start.txt_og2.Value = Worksheets("umsätze").Cells(i3, 3)
Frm_Start.txt_2013_OG2.Value = Worksheets("umsätze").Cells(i3, 4)
End If
If Worksheets("umsätze").Cells(i3, 1) = Me.txtDebnr And Worksheets("umsätze").Cells(i3, 2) = "03" Then
Frm_Start.txt_og3.Value = Worksheets("umsätze").Cells(i3, 3)
Frm_Start.txt_2013_OG3.Value = Worksheets("umsätze").Cells(i3, 4)
End If
If Worksheets("umsätze").Cells(i3, 1) = Me.txtDebnr And Worksheets("umsätze").Cells(i3, 2) = "04" Then
Frm_Start.txt_og4.Value = Worksheets("umsätze").Cells(i3, 3)
Frm_Start.txt_2013_OG4.Value = Worksheets("umsätze").Cells(i3, 4)
End If
If Worksheets("umsätze").Cells(i3, 1) = Me.txtDebnr And Worksheets("umsätze").Cells(i3, 2) = "05" Then
Frm_Start.txt_og5.Value = Worksheets("umsätze").Cells(i3, 3)
Frm_Start.txt_2013_OG5.Value = Worksheets("umsätze").Cells(i3, 4)
End If
If Worksheets("umsätze").Cells(i3, 1) = Me.txtDebnr And Worksheets("umsätze").Cells(i3, 2) = "06" Then
Frm_Start.txt_og6.Value = Worksheets("umsätze").Cells(i3, 3)
Frm_Start.txt_2013_OG6.Value = Worksheets("umsätze").Cells(i3, 4)
End If
If Worksheets("umsätze").Cells(i3, 1) = Me.txtDebnr And Worksheets("umsätze").Cells(i3, 2) = "07" Then
Frm_Start.txt_og7.Value = Worksheets("umsätze").Cells(i3, 3)
Frm_Start.txt_2013_OG7.Value = Worksheets("umsätze").Cells(i3, 4)
End If
If Worksheets("umsätze").Cells(i3, 1) = Me.txtDebnr And Worksheets("umsätze").Cells(i3, 2) = "08" Then
Frm_Start.txt_og8.Value = Worksheets("umsätze").Cells(i3, 3)
Frm_Start.txt_2013_OG8.Value = Worksheets("umsätze").Cells(i3, 4)
End If
If Worksheets("umsätze").Cells(i3, 1) = Me.txtDebnr And Worksheets("umsätze").Cells(i3, 2) = "09" Then
Frm_Start.txt_og9.Value = Worksheets("umsätze").Cells(i3, 3)
Frm_Start.txt_2013_OG9.Value = Worksheets("umsätze").Cells(i3, 4)
End If
If Worksheets("umsätze").Cells(i3, 1) = Me.txtDebnr And Worksheets("umsätze").Cells(i3, 2) = "10" Then
Frm_Start.txt_og10.Value = Worksheets("umsätze").Cells(i3, 3)
Frm_Start.txt_2013_OG10.Value = Worksheets("umsätze").Cells(i3, 4)
End If
Next
End Sub