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

Application.EnableEvents = False/True

Application.EnableEvents = False/True
11.04.2004 19:25:01
Rolf St.
Hallo Excel Experten!
mit folgendem Makro wird die Ausführung der Makros im Tabellenblatt deaktiviert.
Sub VorReinkopieren()
Application.EnableEvents = False
Aktualisieren
End Sub

und mit folgendem Makro wieder aktiviert:

Sub VorReinkopieren()
Application.EnableEvents = True
Aktualisieren
End Sub
Bereich1 ' soll deaktiviert werden
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim s As String
If Target.Column <> 3 Then Exit Sub
s = Target.Address
FormelnFix (Target.Address)
Aktualisieren
Target.Offset(1, 0).Select
If Intersect(Target, [C3:C1000]) Is Nothing Then Exit Sub
If Target.Count <> 1 Then Exit Sub
If IsNumeric(Target) And Target > 0 And Target <= 1000 Then
End If
Bereich 2 ' soll weiterlaufen
If Target.Column <> 3 Or Target.Row < 3 Then Exit Sub
Cells(Target.Row, 21).Value = Application.Run("gibZeit", Range("D1"))
Beep
End Sub

Wie ist es möglich, das Bereich 2 auch nach der Deaktivierung weiter ausgeführt wird?
Vielen Dank für eure Hilfe!!

Tschüß
Rolf

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

Betreff
Datum
Anwender
Anzeige
AW: Application.EnableEvents = False/True
11.04.2004 19:51:55
Josef Ehrensberger
Hallo Rolf!
Eine Möglichkeit!

' **************************************************************
' Modul: Tabelle1 Typ = Element der Mappe(Sheet, Workbook, ...)
' **************************************************************

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim s As String
If Target.Column <> 3 Then Exit Sub
'#################################################
If blnRun Then 'hier den Wert von blnRun abfragen
s = Target.Address
FormelnFix (Target.Address)
Aktualisieren
Target.Offset(1, 0).Select
If Intersect(Target, [C3:C1000]) Is Nothing Then Exit Sub
If Target.Count <> 1 Then Exit Sub
If IsNumeric(Target) And Target > 0 And Target <= 1000 Then
End If
End If '########################################
'#################################################
If Target.Column <> 3 Or Target.Row < 3 Then Exit Sub
Cells(Target.Row, 21).Value = Application.Run("gibZeit", Range("D1"))
Beep
End Sub

' **************************************************************
' Modul: Modul1 Typ = Allgemeines Modul
' **************************************************************

Option Explicit
Public blnRun As Boolean

Sub VorReinkopieren()
blnRun = False
Aktualisieren
blnRun = True
End Sub

Code eingefügt mit: Excel Code Jeanie

Gruß Sepp


Ein kluger Mann macht nicht alle Fehler selbst.
Er lässt auch anderen eine Chance.

(Sir Winston Churchill)


Anzeige
AW: Application.EnableEvents = False/True
11.04.2004 21:29:12
Rolf St.
Hallo Sepp!
Vielen Dank für deine Hilfe!
Leider komme ich noch nicht klar. Der Bereich 1 soll für eine längere Zeit ausgeschaltet werden. Erst mit
Sub NachReinkopieren()
Application.EnableEvents = True
Aktualisieren
End Sub
wird er wieder eingeschaltet (Sorry hatte ich falsch angegeben)
Bereich 2 soll immer laufen.
Wenn:
Sub VorReinkopieren()
Application.EnableEvents = False
Aktualisieren
End Sub
ausgeführt wird soll Bereich 1 deaktiviert werden
' **************************************************************
' Modul: Tabelle1 Typ = Element der Mappe(Sheet, Workbook, ...)
' **************************************************************
' Bereich 1 deaktiviert werden
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim s As String
If Target.Column <> 3 Then Exit Sub
If blnRun Then 'hier den Wert von blnRun abfragen    ' verstehe ich leider nicht
s = Target.Address
FormelnFix (Target.Address)
Aktualisieren
Target.Offset(1, 0).Select
If Intersect(Target, [C3:C1000]) Is Nothing Then Exit Sub
If Target.Count <> 1 Then Exit Sub
If IsNumeric(Target) And Target > 0 And Target <= 1000 Then
End If
End If '########################################
' Bereich 2 soll immer aktiviert sein
If Target.Column <> 3 Or Target.Row < 3 Then Exit Sub
Cells(Target.Row, 21).Value = Application.Run("gibZeit", Range("D1"))
Beep
End Sub


' **************************************************************
' Modul: Modul1 Typ = Allgemeines Modul
' **************************************************************
Option Explicit
Public blnRun As Boolean
Sub VorReinkopieren()
blnRun = False
Aktualisieren
blnRun = True
End Sub
Vielleicht kannst du mir noch mal helfen?

Tschüß
Rolf
Anzeige
AW: Application.EnableEvents = False/True
11.04.2004 22:55:11
Josef Ehrensberger
Hallo Rolf!
Mit "Application.EnableEvents = False" kannst du in diesem
Fall nicht arbeiten, weil dann auch der zweite Teil deines
Codes nicht ausgeführt wird!
Deshalb hab ich die Variable "blnRun" deklariert.
Diese wird beim eintritt des Ereignises bgefragt, und wenn
WAHR wird der gesamte Code durchlaufen, wenn FALSCH wird
nur der zweite Teil abgearbeitet.

' **************************************************************
' Modul: DieseArbeitsmappe Typ = Element der Mappe(Sheet, Workbook, ...)
' **************************************************************

Option Explicit

Private Sub Workbook_Open()
blnRun = True
'stellt sicher, das beim öffnen der Mappe die
'Makros in Tabelle1 ausgeführt werden.
End Sub

' **************************************************************
' Modul: Tabelle1 Typ = Element der Mappe(Sheet, Workbook, ...)
' **************************************************************

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim s As String
If Target.Column <> 3 Then Exit Sub
'Der nachfolgende Abschnitt wird nur ausgeführt wenn
' blnRun = True
If blnRun Then
s = Target.Address
FormelnFix (Target.Address)
Aktualisieren
Target.Offset(1, 0).Select
If Intersect(Target, [C3:C1000]) Is Nothing Then Exit Sub
If Target.Count <> 1 Then Exit Sub
If IsNumeric(Target) And Target > 0 And Target <= 1000 Then
End If
End If
'#######
'Der folgende Abschnitt wird immer ausgeführt!
' Bereich 2 soll immer aktiviert sein
If Target.Column <> 3 Or Target.Row < 3 Then Exit Sub
Cells(Target.Row, 21).Value = Application.Run("gibZeit", Range("D1"))
Beep
End Sub

' **************************************************************
' Modul: Modul1 Typ = Allgemeines Modul
' **************************************************************

Option Explicit
Public blnRun As Boolean

Sub VorReinkopieren()
blnRun = False 'setzt blnRun auf Falsch
Aktualisieren
End Sub

Sub NachReinkopieren()
blnRun = True 'setzt blnRun auf Wahr
Aktualisieren
End Sub

Code eingefügt mit: Excel Code Jeanie

Gruß Sepp


Ein kluger Mann macht nicht alle Fehler selbst.
Er lässt auch anderen eine Chance.

(Sir Winston Churchill)


Anzeige
AW: Application.EnableEvents = False/True
12.04.2004 10:37:03
Rolf St.
Hallo Sepp!
Super jetzt funktioniert es!

Danke!
Tschüß
Rolf
Danke für die Rückmeldung! o.T.
12.04.2004 10:51:38
Josef Ehrensberger
Gruß Sepp

Ein kluger Mann macht nicht alle Fehler selbst.
Er lässt auch anderen eine Chance.

(Sir Winston Churchill)


46 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige