Vom Makro-Rekorder zu VBA optimieren
heidi
mein mit Rekorder aufgenommenes Makro ist sehr langsam an dieser Stelle. Im Forum lese ich immer wieder, dass man sich "Select" usw. sparen kann. Doch egal, wie ich es versuche zu ändern, bekomme ich dann Fehlermeldungen. Da ich dabei bin, mir zumindest ein bisschen VBA selbst beizubringen, bitte ich um Hilfe bei diesem - so denke ich - grundlegenden Thema.
Danke im Voraus,
Heidi
'Verschiedene Spalten werden umbenannt, andere umformatiert, usw.
Application.StatusBar = "Spaltenköpfe werden teilweise umbenannt. ... dann gehts gleich richtig los ..."
Columns("AL:AL").Select
Selection.NumberFormat = "dd/mm/yy;@"
Range("AM1").Select
ActiveCell.FormulaR1C1 = "KL_Umsatz in %"
Range("AO:AO,AQ:AQ").Select
Range("AO:AO,AQ:AQ,AS:AS,AU:AU,AW:AW,AY:AY").Select
Range("AY1").Activate
Selection.NumberFormat = "#,##0 $"
Range("AQ1").Select
ActiveCell.FormulaR1C1 = "Umsatz_2011"
Range("AR1").Select
ActiveCell.FormulaR1C1 = "Umsatz_2011_aktiv"
Range("AP1").Select
ActiveCell.FormulaR1C1 = "Umsatz_idl_12_Monate_aktiv"
Range("AS1").Select
ActiveCell.FormulaR1C1 = "Umsatz_2010"
Range("AT1").Select
ActiveCell.FormulaR1C1 = "Umastz_2010_aktiv"
Range("AU1").Select
ActiveCell.FormulaR1C1 = "Umsatz_2009"
Range("AV1").Select
ActiveCell.FormulaR1C1 = "Umsatz_2009_aktiv"
Range("AV2").Select
Range("AW1").Select
ActiveCell.FormulaR1C1 = "Umsatz_2008"
Range("AX1").Select
ActiveCell.FormulaR1C1 = "Umsatz_2008_aktiv"
Range("AY1").Select
ActiveCell.FormulaR1C1 = "Umsatz_2007"
Range("AZ1").Select
ActiveCell.FormulaR1C1 = "Umsatz_2007_aktiv"
Range("AZ2").Select
Range("BB:BB,BF:BF").Select
Range("BF1").Activate
Selection.NumberFormat = "dd/mm/yy;@"
Columns("BJ:BJ").Select
Range("BJ:BJ,BW:BW").Select
Range("BW1").Activate
Selection.NumberFormat = "dd/mm/yy;@"
Columns("BS:BT").Select
Selection.Delete Shift:=xlToLeft
Range("BW2").Select
Columns("CF:CG").Select
Selection.Delete Shift:=xlToLeft
Columns("CF:CF").Select
Selection.NumberFormat = "0.0%"
Columns("CG:CG").Select
Selection.NumberFormat = "#,##0 $"
Columns("CL:CL").Select
Columns("CP:CP").Select
Selection.NumberFormat = "dd/mm/yy;@"
Rows("1:1").Select
Range("CJ1").Activate
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlBottom
.WrapText = False
.Orientation = 90
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Cells.Select
Cells.EntireColumn.AutoFit
Columns("AF:AF").ColumnWidth = 40.29