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

Makro funktioniert nicht in allen Umgebungen

Makro funktioniert nicht in allen Umgebungen
15.04.2008 17:48:00
Peter
Guten Tag
Hier im Forum hat mir jemand diesen hilfreichen Code geschrieben, der bewirkt, dass eine Eingabe ignoriert wird, wenn mehrere Tabellen angewählt sind (und daher vielleicht etwas überschrieben würde, das nicht gewünscht ist). Der Code steht auf
DieseArbeitsmappe
Interessanterweise funktioniert dieser Makro nur in der Citrix Umgebung. Wenn ich das Dokument in einem lokalen File auf dem PC habe, wird eine Eingabe nicht rückgängig gemacht, wenn mehrere Tabellen angewählt sind. Ich dache, dass vielleicht ein Makro inder persölichen Makrovorlage "schuld" sei. Doch auch das Schliessen dieser Datei hat keine Änderung bewirkt.
Hat jemand eine Idee, weshalb dieser Code auf meinem PC lokal wirkungslos bleibt?
Danke für eine Rückmeldung
Peter
Option Explicit
Dim bUndo As Boolean

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
On Error Resume Next
If Sh.Name  ActiveSheet.Name Then
With Application
.EnableEvents = False
If Not bUndo Then .Undo
.EnableEvents = True
End With
bUndo = True
Exit Sub
End If
bUndo = False
End Sub


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

Betreff
Datum
Anwender
Anzeige
AW: Makro funktioniert nicht in allen Umgebungen
15.04.2008 19:57:00
Knut
Hi,
also bei mir, E2003, funktioniert es.
mfg Knut

AW: Makro funktioniert nicht in allen Umgebungen
16.04.2008 09:44:49
Armin
Hallo Peter,
das Makro funktioniert tadellos!
Versuche bitte mal eine Hilfsprocedure um den EnableEvents auf True zu setzen bevor das Makro wirken soll.
Evtl. auch in der Workbook_Open einbauen.

Sub Workbook_Open()
Application.EnableEvents = True
End Sub



Sub aktivEvents ()
Application.EnableEvents = True
End Sub


Meist ist ein Abbruch eines Makros nach einem Fehler daran Schuld das EnableEvents auf False steht.
Gruß Armin

Anzeige
AW: Makro funktioniert nicht in allen Umgebungen
16.04.2008 09:51:00
Peter
Hallo Armin
Danke für die Rückmeldung. Das scheint die Erklärung zu sein, denn gestern hatte ich verschiedene Abbrüche und heute funktionierte es wieder tadellos.
Für mich stellt sich daher die Frage, ob etwas dagegen spricht, Application.EnableEvents = True gleich am Anfang zu setzen?
Vielen Dank und Gruss, Peter

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Application.EnableEvents = True
On Error Resume Next
If Sh.Name  ActiveSheet.Name Then
With Application
.EnableEvents = False
If Not bUndo Then .Undo
.EnableEvents = True
End With
bUndo = True
Exit Sub
End If
bUndo = False
End Sub


Anzeige
AW: Makro funktioniert nicht in allen Umgebungen
16.04.2008 10:05:00
Renee
Hi Peter,
...denn gestern hatte ich verschiedene Abbrüche
Wenn dein Code abbricht und vorher ein .EnableEvents = False abgelaufen ist, so bleibt für den Rest der Sitzung in der entsprechenden Instanz das Event-Handling aus.
Es ist darum wichtig, nach einem .EnableEvents = False das Handling wieder auf .EnableEvents = True zu setzen. Bei einem Abbruch/Debuggen kannst du auch einfach den Befehl Application.EnableEvents = True in ein Direktfenster des VBE (Ctrl-G) eingeben. Eine genereller Befehl am Anfang einer Event-Routine nützt dir nix, da ja diese Routine nur anläuft, wenn das Event-Handling eingeschaltet ist.
GreetZ Renée

Anzeige
AW: Makro funktioniert nicht in allen Umgebungen
16.04.2008 10:15:10
Peter
Hallo Renée
Vielen Dank - diese Ausführungen sind hilfreich!
Peter

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige