Formel einfügen zu langsam
08.07.2006 09:33:04
Giuseppe
wie immer wenn ich nicht weiter weiß....stelle ich euch men Problem vor:
Ich habe ein Database mit 45 Felder und mittlerweile mehr als 6000 Einträge.
Die Daten werden mittels Userform angegeben.
Bei Verlassen der UF werden durch Makro in 3 Felder Formel hinzugefügt.
Der Code habe mit Hilfe der Macrorecorder erstellt:
Sub Formel_einfügen()
' Makro1 Makro
' Makro am 21.12.2005 von G.Bonfirraro aufgezeichnet
Application.ScreenUpdating = False
Auf
Dim loLetzte As Long
With Worksheets("Database")
If IsEmpty(Cells(65536, 1)) Then
loLetzte = .Cells(Rows.Count, 1).End(xlUp).Row
End If
End With
Range("W3").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(RC[23],Categorie!R2C[-21]:R1500C[-20],2,FALSE)),""?"",VLOOKUP(RC[23],Categorie!R2C[-21]:R1500C[-20],2,FALSE))"
Selection.AutoFill Destination:=Range(Cells(3, 23), Cells(loLetzte + 1, 23)), Type:=xlFillDefault
Range("AR3").Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[-42]=""."",TEXT(RC[-1],) &"" ""&TEXT(RC[-23],),TEXT(RC[-1],) &"" ""&TEXT(RC[-42],)&"" ""&TEXT(RC[-23],))"
Selection.AutoFill Destination:=Range(Cells(3, 44), Cells(loLetzte + 1, 44)), Type:=xlFillDefault
Range("AT3").Select
ActiveCell.FormulaR1C1 = _
"=IF(OR(RC[-24]="""",RC[-24]=""AAA""),RC[-25],RC[-25]&"" ""&RC[-24])"
Selection.AutoFill Destination:=Range(Cells(3, 46), Cells(loLetzte + 1, 46)), Type:=xlFillDefault
Range("B3").Select
Application.ScreenUpdating = True
Zu
End Sub
Mit 1000 Daten dauert relativ schnell, aber mit mehr als 6000 kann man dabei
einschlafen bis die Operationen durchgeführt werden (fast 10 Sekunden).
Kann man der Code so ändern, dass das ganze scheller wird?
Ich bedanke mich für eure Hilfe.
Giuseppe
Anzeige