Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Worksheet_Change(ByVal Target As Excel.Range)





Frage

hi alle bei diesem aufruf moechte ich eigentlich das das makro nur einmal durchlaufen wird,da das makro aber beliebig viele zellen abarbeitet wird jetzt grrrrr nach jeder zelle das makro aufgerufen das bedeutet bei ablauf soviele neue aufrufe wie zellen angesprungen werden.wie kann ich bei aufruf des makros vom makro01 aus die function(Private Sub Worksheet_Change(ByVal Target As Excel.Range) )unterbinden und bei ende wieder anschalten. gruss nighty Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Target.Value <> "" Then Call Makro01 End If End Sub

Antwort 1 von Guenter

Hi nighty,

das ist mir etwas zu kompliziert.
Das oben beschriebene Makro Worksheet_Change ruft doch nur das Makro01 auf, sonst passiert nichts.
Wenn du das nicht willst, dann lass doch einfach das Ereignis-Makro Worksheet_Change weg und rufe nach Bedarf Makro01 auf.

Oder habe ich das Ganze überhaupt nicht verstanden??

Gruß
Günter

Antwort 2 von nighty

hi guenter

der obige aufruf wird gestartet bei verlassen einer zelle

wenn das aufgerufene makro01 laeuft und gerade zellen abarbeitet wird sozusagen verschachtelt erneut obige prozedur aufgerufen eben soviele zellen von dem makro01 veraendert werden soviele aufrufe.

gruss nighty

Antwort 3 von nighty

hi alle

solange das makro laeuft duerfen keine weiteren aufrufe erfolgen da ist der haken.

gruss nighty

Antwort 4 von nighty

hi alle

bessere beschreibung vielleicht

wenn das makro NICHT laeuft soll obiger
aufruf bei verlassen einer zelle erfolgen,was ja auch passiert.

wenn das makro LAEUFT so werden zellen berechnet als beispiel 100 somit werden jetzt 100 neue aufrufe der obigen aufrufes erfolgen,eben in sich verschachtelte aufrufe die nicht erwuenscht sind,eben erst wieder bei beendigung des makros01.

gruss nighty

Antwort 5 von Guenter

Vielleicht klappt es, wenn Du eine Zeile in das Worksheet_Change Makro einführst:

If Target.Address <> "geänderte Zelle" Then Exit Sub

Gruß
Günter

Antwort 6 von sicci

Hallo nighty,

schalte einfach die Event-Abarbeitung am Anfang Deines Makro01 ab:
Application.EnableEvents = false
und vor Verlassen wieder ein:
Application.EnableEvents = True

Gruß
sicci

Antwort 7 von nighty

hi alle

KLASSE dank euch beiden.

gruss nighty

Antwort 8 von KK

Eine Lösung für genau dieses Problem habe ich auch gesucht.

Super!

Dankeschön!

Antwort 9 von nighty

hi kk

das sn ist in diesem sinne spitze bzw.
sicci und guenther und all die anderen.

gruss nighty

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: