Hallo liebe Mitglieder,
ich habe ein Problem und hoffe hier Hilfe zu bekommen.
Zur Sache: Ich habe in VBA ein "Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)" angelegt und dort einen sich im Prinzip ständig wiederholenden Ablauf eingetragen. Das einzige was sich in den Schrittfolgen ändert ist die jeweilige Zellennummer.
Nun ist es so, ich am Ende rund 2000 Befehlszeilen benötigen und bereits jetzt nach 200 Zeilen schon die Fehlermeldung bekomme, dass die Prozedur zu lang ist.
Gibt es eine Möglichkeit die Prozedur zu unterteilen und wenn Ja, was wäre der einfachste Weg zum Ziel?
Hier ein kurzer Auszug aus dem Code. Die Befehlsblöcke wiederholen sich im Prinzip von 'Shaft 1_regular bis ' Shaft 19_regular. Alles funktioniert prima bis hin zum 11. und von dort an taucht die Fehlermeldung auf.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
' Shaft 1_regular
If Target.Address = "$P$243" Then Target.Value = Target.Value + 1
If Target.Address = "$P$244" Then Target.Value = Target.Value + 1
If Target.Address = "$P$245" Then Target.Value = Target.Value + 1
If Target.Address = "$R$243" Then Target.Value = Target.Value + 1
If Target.Address = "$R$244" Then Target.Value = Target.Value + 1
If Target.Address = "$R$245" Then Target.Value = Target.Value + 1
If Target.Address = "$U$243" Then Target.Value = Target.Value + 1
If Target.Address = "$U$244" Then Target.Value = Target.Value + 1
If Target.Address = "$U$245" Then Target.Value = Target.Value + 1
If Target.Address = "$P$248" Then Target.Value = Target.Value + 1
If Target.Address = "$P$249" Then Target.Value = Target.Value + 1
If Target.Address = "$P$250" Then Target.Value = Target.Value + 1
If Target.Address = "$R$248" Then Target.Value = Target.Value + 1
If Target.Address = "$R$249" Then Target.Value = Target.Value + 1
If Target.Address = "$R$250" Then Target.Value = Target.Value + 1
If Target.Address = "$U$248" Then Target.Value = Target.Value + 1
If Target.Address = "$U$249" Then Target.Value = Target.Value + 1
If Target.Address = "$U$250" Then Target.Value = Target.Value + 1
If Target.Address = "$P$253" Then Target.Value = Target.Value + 1
If Target.Address = "$P$254" Then Target.Value = Target.Value + 1
If Target.Address = "$P$255" Then Target.Value = Target.Value + 1
If Target.Address = "$R$253" Then Target.Value = Target.Value + 1
If Target.Address = "$R$254" Then Target.Value = Target.Value + 1
If Target.Address = "$R$255" Then Target.Value = Target.Value + 1
If Target.Address = "$U$253" Then Target.Value = Target.Value + 1
If Target.Address = "$U$254" Then Target.Value = Target.Value + 1
If Target.Address = "$U$255" Then Target.Value = Target.Value + 1
If Target.Address = "$P$258" Then Target.Value = Target.Value + 1
If Target.Address = "$P$259" Then Target.Value = Target.Value + 1
If Target.Address = "$P$261" Then Target.Value = Target.Value + 1
If Target.Address = "$P$262" Then Target.Value = Target.Value + 1
If Target.Address = "$P$263" Then Target.Value = Target.Value + 1
If Target.Address = "$R$258" Then Target.Value = Target.Value + 1
If Target.Address = "$R$259" Then Target.Value = Target.Value + 1
If Target.Address = "$R$261" Then Target.Value = Target.Value + 1
If Target.Address = "$R$262" Then Target.Value = Target.Value + 1
If Target.Address = "$R$263" Then Target.Value = Target.Value + 1
If Target.Address = "$U$258" Then Target.Value = Target.Value + 1
If Target.Address = "$U$259" Then Target.Value = Target.Value + 1
If Target.Address = "$U$261" Then Target.Value = Target.Value + 1
If Target.Address = "$U$262" Then Target.Value = Target.Value + 1
If Target.Address = "$U$263" Then Target.Value = Target.Value + 1
'Shaft 2_regular
etc.
Cancel = True
End Sub
|