Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
508to512
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
508to512
508to512
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Worksheet_Change

Worksheet_Change
02.11.2004 13:24:18
Gregor
Hallo
Mit folgendem Makro im Tabellenblatt habe ich mit Worksheet_Change (beim Ändern von Zellinhalten) viele Prüfkriterien eingebaut. Das funktioniert so weit so gut. Wenn ich aber ein anderes Makro ausführe, das eine dieser Zellen betrifft, geht das ellenlang bis alle Prüfkriterien durchgeführt sind. Diese Überprüfung wäre aber beim Ausführen der Makros gar nicht nötig. Gibt es irgendeine Möglichkeit, dass die Makros diese Überprüfung nicht auslösen?
Ich habe zB ein Makro 'Zeile einfügen' mit definierten Zellformatierungen. Dieses Makro dauert durch die unnötige Überprüfung viel zu lange.
'--- Wenn Eingabe ab Spalte E ändert wird in Spalte D Datum aktualisiert

Private Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Target.Column >= 5 And Target.Column <= 71 And Target.Row >= 3 And Target.Row < LastRowSpalte2 Then
Cells(Target.Row, 4) = Date
End If
'--- Wenn Eingabe in Spalte X oder AR bis BF ändert, wird in Spalte X Code aktualisiert
If Target.Column = 24 Or Target.Column = 41 Or Target.Column >= 44 And Target.Column <= 58 Then
If WorksheetFunction.Sum(Range(Cells(Target.Row, 44), Cells(Target.Row, 58))) > 0 _
And Cells(Target.Row, 41) <> "" Then
Cells(Target.Row, 24) = 1
Else
Cells(Target.Row, 24) = 0
End If
End If
'--- Wenn Eingabe in Spalte M oder X ändert, wird in Spalte BN Eintrag aktualisiert
If Target.Column = 13 Or Target.Column = 24 Or Target.Column = 66 Then
If Cells(Target.Row, 24) = 1 Then
Cells(Target.Row, 66) = "IR"
Exit Sub
End If
If Cells(Target.Row, 13) > 0 And Cells(Target.Row, 24) = 0 Then
Cells(Target.Row, 66) = "ER"
Else
Cells(Target.Row, 66) = ""
End If
End If
End Sub

Vielen Dank und Gruss
Gregor

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Worksheet_Change
u_
Hallo,
schalte in deinem Makro 'Zeile_Einfügen' die Ereignisverarbeitung ab.
Application.enableevents=false
Am Ende unbedingt wieder auf true setzen.
Gruß
AW: Worksheet_Change
Gregor
Vielen Dank,
das Abschalten der Ereignisverarbeitung klappt bestens, leider funktionieren auf diesen mit 'Application.enableevents=false' eingefügten Zeilen die Überprüfungen nicht mehr, obwohl ich am Schluss des Makros 'Application.enableevents=true' gesetzt habe.
Was mache ich wohl falsch?
Gregor

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige