Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
632to636
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
632to636
632to636
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA Code langsam?

VBA Code langsam?
04.07.2005 11:31:19
Patrick
Hallo Excelfreunde,
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

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Code langsam?
04.07.2005 12:29:35
Kurt
Hi,
disable die Events zum Beginn.
mfg Kurt
AW: VBA Code langsam?
04.07.2005 12:55:48
Patrick
Hallo Kurt meintst du die if Befehle am Anfang? Die brauche ich damit dir richtigen Dinge passieren. Allenfalls könnte man diese anders schreiben, aber leider habe ich zuwenig Ahnung.
Gruss Patrick
AW: VBA Code langsam?
04.07.2005 13:19:43
Kurt
Hi, wenn du noch eine Antwort erwartest, solltest du die Frage als offen kennzeichnen,
hab nur zufällig noch mal reingeschaut.

Private Sub Worksheet_Change(ByVal Target As Range)
on error goto errh
<b>Application.EnableEvents = False</b>
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] = "---"
errh:
<b>Application.EnableEvents = True</b>
End Sub

Anzeige
AW: VBA Code langsam?
04.07.2005 13:23:22
Kurt
Die html-Tags müssen weg, keine Ahnung, woher die Kommen?

mfg Kurt
AW: VBA Code langsam?
04.07.2005 14:29:56
Patrick
Hallo Kurt,
herzlichen Dank für die Hilfe, jetzt funktioniert es einwandfrei. Danke für den Hinweis mit der Frage offen, lasse jetzt den Hacken bewusst weg, da das Problem gelösst wurde.
Gruss Patrick

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige