3k Aufrufe
Gefragt in Tabellenkalkulation von finger59 Experte (1.3k Punkte)
Hallo liebe Excelfangemeinde,

in meiner letzten Anfrage hat mir Rainer helfen können, allerdings komme ich jetzt doch in eine Konfliktsituation.

Meine letzte Anfrage ist hier nachzulesen:
www.supportnet.de/t/2433498

In dem Makro war der Abfragebereich mit BD2 : BD407 angegeben und wenn ich andere Makros starte, werden neue Hilfsspalten eingefügt, so dass die Spalte BD mit anderen Werten kurzfristig gefüllt werden, die sich nicht mit meinen Vorgaben decken.

Sicherlich wäre eine Möglichkeit die Hilfsspalten auf den Bereich CA oder so zu legen, was allerdings das durchstöbern von allen Makros zur Folge hätte.

Hatte mal versucht die Fehlermeldung des unverträglichen Typs mit
application.displayalerts = false zu umgehen, aber das funktioniert leider nicht.

Meine Frage an die Excelhelfer: Gibt es eine Möglichkeit das Makro mit dem Worksheet_change... kurzfristig auszuschalten?

Vielen Dank an alle die sich meine Frage anschauen und wünsche noch einen schönen Tag.... Gruß Helmut

6 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Helmut,

mit
Application.EnableEvents = False

am Anfang deines zweiten Makros kannst du das Auslösen des Worksheets.Change-Ereignisses verhindern;
Application.EnableEvents = True

"schaltet" das Change-Ereignis wieder an.

Gruß

M.O.
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi Helmut,

versuche es mal so (ungetestet): definiere in einem allgemeinen Modul eine Public Variable (z.b. blnNichtAusfuehren) - diese setzt du zu Beginn deiner Makros für das Einfügen von Spalten auf True und am Ende wieder auf False. Deinen Code im Change-Ereignis schreibst du dann so:

If blnNichAusfuehren = False Then
' hier deinen ursprünglichen Change-Code
End If
blnNichAusfuehren = False


Bis später,
Karin
0 Punkte
Beantwortet von finger59 Experte (1.3k Punkte)
Hallo M.O., hallo Karin,

ich hätte sicherlich die Lösung von M.O. bevorzugt, da sie mir einfacher erschien, aber....

seitdem das Makro (ohne Euren Lösungsansatz zur Unterdrückung) mit dem Einfügen und anschließendem Löschen von Hilfsspalten durchgelaufen ist, greift seltsamerweise das Makro mit dem Worksheet_change... nicht mehr.

Eigentlich wäre meine Anfrage somit schon erledigt gewesen, aber jetzt funktioniert das nicht mehr, was vorher lief.

Entweder verzichte ich jetzt auf das automatische Zeileneinfärben je nach Kürzel oder ich muss mir die Datei neu aufbauen, dann allerdings die Hilfsspalten hinter Spalte BD. Dann sollte dieser "Fehler" auch nicht mehr auftreten.

Ich danke Euch beiden für Eure Lösungsvorschläge.

Gruß Helmut
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi Helmut,

hast du mal einen Haltepunkt auf das Worksheet_Change-Ereignis gesetzt? Ich schätze mal, durch Application.Enable-Events = False ist die Reaktion auf die Eingabe komplett abgeschaltet worden. Du musst sie halt mit einem Hilfsmakro durch Application.EnableEvents=True erst mal wieder einschalten. Das ist halt das Problem, wenn man diese Funktion verwendet.

Bis später,
Karin
0 Punkte
Beantwortet von finger59 Experte (1.3k Punkte)
Hallo Karin,

in den drei unterschiedlichen Makros, in denen ich vorher den Fehler bekam, habe ich auch wieder Application.EnableEvents=True gesetzt.

Aber selbst in einer älteren Datei, in der ich den Vorschlag von M.O. noch nicht eingesetzt hatte, wurde mir das Worksheet_change... nicht mehr genommen.

Irgendwas anderes muss da reingespielt haben- leider bin ich in Sachen Vba eher ein Laie- da selbst das schließen und anschließend wieder öffnen der Datei keine Eingabe mehr in der Spalte BD zu einer Reaktion sprich Schriftfarbenveränderung führte.

Das Problem hängt weder mit M.O. noch mit Deinem Lösungsvorschlag zusammen, da ich dieses erst später eingesetzt hatte und zunächst im Glauben war.. yeah.. es funktioniert, bis ich dann feststellen musste.. ne.. eine Änderung in BD führt zu keiner Änderung der Schriftfarbe... so dass ich meine Makros auch ohne Zusatz laufen lassen kann, ohne dass der Fehler dann im Ablauf auftritt.

Von daher werde ich wohl eher die Datei neu aufbauen und dann umschreiben, auch wenn es ein paar Std. dauern wird.

Die Makros selber haben bis dahin alle funktioniert... müssten nur angepasst werden und die Daten der Daten in eine neue Mappe kopiert werden...

Leider kann ich die Datei so nicht ins Netz stellen, da die Daten nicht so ohne weiteres "manipuliert" werden können.

Aber dennoch vielen Dank für Deine Anfrage... man kann ja auch mal was überlesen und wundert sich dann über die Kleinigkeiten im Leben.

In diesem Sinne... have a nice Day... Gruß Helmut
0 Punkte
Beantwortet von finger59 Experte (1.3k Punkte)
Hallo Excelfans,

nachdem selbst bei einem neuen Tabellenblatt das Makro vom Rainer aus meiner ersten Anfrage nicht mehr lief, habe ich Excel
komplett geschlossen und wieder geöffnet und siehe da...
jetzt geht es wieder mit dem Makro zum Einfärben.

Anscheinend habe ich doch einen Fehler mit dem Application.EnableEvents=True
gemacht und an die falsche Stelle gesetzt.

Werde mal sehen ob ich das doch noch geregelt bekomme; ansonsten werde ich mir die Lösung von Karin anschauen bzw. hoffen, dass ich über die Gestaltung von >>Public Variable<< etwas nachlesen kann.

In diesem Sinne.. have a nice Day... Gruß Helmut
...