VBA Code langsam?
04.07.2005 11:31:19
Patrick
habe ein Programm mit Makros erstellt bzw. Teile aus anderen Programmen für meine Zwecke übernommen. Im Prinzip werden Dropdown Zellen angesprochen, die wenn die richtige Kombination gewählt wird, Werte aus Tabellen einfügt. Wenn der Eintrag Manuel Input gewählt wird, können die Werte per selber definiert werden. Jetzt habe ich die Dropdownbox Car System (Zelle C15) von der Dropdownbox VKN abhängig gemacht. Jetzt jedesmal wenn ich auf Manual Input gehe rechnet das Programm 10 Sekunden. Meine Frage, kann man den Code optimieren? Da ich sehr wenig VBA kenntisse habe, glaube ich nicht dass ich die optimale Programierung gewählt habe. Kann man die beiden Zeilen:
If Target.Row = 15 And Target.Column = 3 Then Call Tabellenullen
If Target.Row = 15 And Target.Column = 3 Then [VKN] = "Coose VKN"
in einer Zusammenfassen?
habe folgenden Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Row = 15 And Target.Column = 3 Then Call Tabellenullen
If Target.Row = 15 And Target.Column = 3 Then [VKN] = "Coose VKN"
If Range("C15") = "Manual Inputs" Then [VKN] = "---"
End Sub
'-------------------------------------------------------------------------------------------
Private Sub Tabellenullen()
On Error Resume Next
'Application.ScreenUpdating = False
Sheets("Input").Unprotect (123)
If [Car_System] = "Manual Inputs" Then
With [Car, ,gear]
.Validation.Delete
.Value = " --- "
GoTo Ende:
End With
Else
With [Car].Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=Def_MR"
End With
With [gear].Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=Def_Reeving"
End With
' With [VKN].Validation
' .Delete
' .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=Def_VKN"
' End With
End If
Ende:
Sheets("Input").Protect (123)
Calculate
End Sub
Bin für jede Hilfe dankbar.
Gruss Patrick