geht´s auch schneller?
29.12.2006 18:01:15
Melanie
Ich habe eine "etwas größere Tabelle" mit Materialnummern, die ich ursprünglich per S-Verweis um einige Datenfelder erweitern wollte, aber das dauerte super lange. Jetzt habe ich die ganze Geschichte mit Match-Befehlen gestaltet, aber das dauert auch super lange. Hat jemand eine Idee wie ich das noch schneller machen könnte? Ich weiß, dass das mit dem "activate" nicht optimal ist, aber wie kann ich das umgehen - irgendwie muss ich die Felder ja ansteuern!?
Ich sag schon mal DANKE vorab.
Gruß,
Melanie
Sub Match()
Dim i As Long
Dim var As Variant
Dim material As Variant
Application.EnableEvents = False
Application.ScreenUpdating = False
On Error GoTo ERRORHANDLER
For i = 3 To 30000
If Not IsEmpty(Cells(3, 1)) Then
material = Cells(i, 1).Value
Cells(i, 1).Activate
var = Application.Match(material, Worksheets("Tabelle1").Columns(1), 0)
If Not IsError(var) Then
ActiveCell.Offset(0, 47).Value = Worksheets("Tabelle1").Cells(var, 31).Value
ActiveCell.Offset(0, 48).Value = Worksheets("Tabelle1").Cells(var, 20).Value
ActiveCell.Offset(0, 49).Value = Worksheets("Tabelle1").Cells(var, 40).Value
ActiveCell.Offset(0, 50).Value = Worksheets("Tabelle1").Cells(var, 41).Value
ActiveCell.Offset(0, 51).Value = Worksheets("Tabelle1").Cells(var, 35).Value
ActiveCell.Offset(0, 52).Value = Worksheets("Tabelle1").Cells(var, 43).Value
Else
ActiveCell.Offset(0, 47).Value = "-"
ActiveCell.Offset(0, 48).Value = "-"
ActiveCell.Offset(0, 49).Value = "-"
ActiveCell.Offset(0, 50).Value = "-"
ActiveCell.Offset(0, 51).Value = "-"
ActiveCell.Offset(0, 52).Value = "-"
End If
End If
Next i
ERRORHANDLER:
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub