![]() |
Betrifft: Makro stoppen und wieder starten, wenn anderes Mak
von: Anja
Geschrieben am: 23.10.2014 02:08:39
Hallo,
Ich habe folgendes Problem:
Ich habe ein Makro das auf die Eingaben reagiert. Es hat zwei Funktionen in meiner Datei. Im ersten Teil schreibt es den letzten eingeben Wert in Zelle AN 1. Der zweite Teil ist eine Suchfunktion. Sie arbeitet mit dem Autofilter, wenn man in eine bestimmte Zelle ein Wort oder Wortteil eingibt. Dann werden nur diese Daten angezeigt. Es klappt super.
Jetzt habe ich aber das Problem, das ich beim Kopieren und Einfügen von Zeilen dieses Makro auch auslöse, was zu langen Wartezeiten führt. Je nach Anzahl der eingefügten Zeilen läuft es ewig. Ich muss Zeilen einfügen um z.B. die Tabelle zu verlängern.
Ich hatte eine Lösung gefunden, die bei mir auf Excel 7 auch funktioniert, indem ich in meinen Einfüge-Button nachfolgenden Code eingefügt habe. In Excel 10 bekomme ich eine Fehlermeldung. Warum? Gibt es eine andere Möglichkeit zu verhindern, dass das Makro mit der Suchfunktion aktiviert wird, solange ein anderes Makro läuft. Also, wenn ich den Einfügen-Button betätige, dass das Suchmakro direkt angesprochen und ausgeschaltet wird und dann wieder angeschaltet wird, wenn das Einfügen abgeschlossen ist. Den Code für das mit der Suchfunktion habe ich weiter unten eingefügt.
Vielen Dank im Voraus!!!
Makro für Einfüge-Button:
Private Sub cmdEinfügen_Click() Application.EnableEvents = False ActiveSheet.Paste Application.EnableEvents = True ActiveSheet.Protect Password:="???" End Sub
Private Sub Worksheet_Change(ByVal Target As Range) ActiveSheet.Unprotect Password:="???" On Error Resume Next Dim objRange As Range, objCell As Range Set objRange = Intersect(Range("C12:C30000"), Target) If Not objRange Is Nothing Then For Each objCell In objRange Range("AN1").Value = Target.Value Sheets("Einträge").Range("AN1").Copy Sheets("Auswahlliste").Range("AN1") Next End If If Intersect(Range("SucheEintrag"), Target) Is Nothing Then Exit Sub Select Case Target.Column Case 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 'Az, Name, IBAN, Info Externe, _ Anmerkung, InsoG, ger. Az [enthält] If IsEmpty(Target) Then Selection.AutoFilter Field:=Target.Column Else Selection.AutoFilter Field:=Target.Column, Criteria1:="=*" & Target.Text & "*", _ Operator:=xlAnd ActiveWindow.LargeScroll Down:=-6 End If End Select ActiveSheet.Protect Password:="???" End Sub
![]() ![]() |
Betrifft: AW: Makro stoppen und wieder starten, wenn anderes Mak
von: Hajo_Zi
Geschrieben am: 23.10.2014 07:17:31
schalte bei Change die Reaktion auf die Eingabe auch aus und ein.
![]() ![]() |
Betrifft: AW: Makro stoppen und wieder starten, wenn anderes Mak
von: Anja
Geschrieben am: 23.10.2014 21:26:49
Hallo Hajo,
danke für den Tipp. Ich werde das morgen mal ausprobieren, weil ich nur bei meiner Arbeit Excel 10 habe. Ich verstehe aber trotzdem nicht, warum es auf meinem Computer mit 07 problemlos läuft, aber auf dem Rechner mit Excel 10 nicht.
Ich werde mich morgen noch einmal melden.
Gruß
Anja
![]() |