Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

SelectionChange; ActiveCell

Forumthread: SelectionChange; ActiveCell

SelectionChange; ActiveCell
21.08.2002 15:08:03
RainerL
Hallo Forum,

für die Tabelle("Vorauswahl") benutze ich ein Change- und ein SelcetionChange Ereignis und das Makro Auswahl_Liste_zeigen". Alles funktionierte gut. Die Change-Ereignisse, die ChangeSelect-ereignisse und auch das Makro "Auswahl_Liste_zeigen" funktoniert. Dabei wird eigentlich nur die Tabelle "Auswahl" aufgerufen, gefiltert (Autofilter) und dargestellt. Das Makro "Auswahl_Liste_zeigen" habe ich über einen Buttom in der Menueleiste gestartet.

Dann wollte ich erreichen, daß bei Änderung einer bestimmten Zelle der Tabelle("Vorauswahl") das Makro "Auswahl_Liste_zeigen"
startet.
So habe ich in Worksheet_Change eingetragen:
.
.
Cells (21,10).select
Auswahl_Liste_zeigen
.
.

Jetzt erhalte ich die Fehlermeldung Laufzeitfehler 1004
Die Select Methode des Range Objectes ist fehlerhaft und weiterhin wird in SelctionChange die Zeile:
Cells(ActiveCell.Row, 7).Select
gelb markiert. Wie kann ich den Fehler beseitigen, ohne einen kompletten Umbau.

mit freudlichen Grüssen aus Berlin

Rainer


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
.
.
.
end sub

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Not (Target.Column = 3 Or Target.Column = 7 Or Target.Column = 10) Then
If ActiveCell.Column < 5 Then
Cells(ActiveCell.Row, 3).Select
Else
If ActiveCell.Column < 10 Then
Cells(ActiveCell.Row, 7).Select
Else
Cells(22, 10).Select
End If
End If
Else
If ActiveCell.Column = 10 And ActiveCell.Row <> 22 Then
Cells(22, 10).Select
End If
End If
If Target.Row > 30 Or Target.Row = 1 Then
If Target.Row = 1 Then
Cells(2, ActiveCell.Column).Select
Else
Cells(29, ActiveCell.Column).Select
End If
End If
End Sub

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Re: SelectionChange; ActiveCell
21.08.2002 16:20:24
Charlie
Hallo, Rainer!

Das Problem tritt deshalb auf, weil das Worksheet_Change-Ereignis selbst, noch bevor das Makro "Auswahl_Liste_zeigen" aufgerufen werden kann, das SelectionChange-Ereignis auslöst, welches selbst wieder durch Ändern der aktiven Zelle sich selbst startet. Und das mitunter mehrere Male hintereinander. Dann kann es passieren, dass aber zwischendurch das Makro "Auswahl_Liste_zeigen" gestartet wird (keine Ahnung warum das passiert, irgendwie kann ich das Herumspringen in den Ereignissen nicht ganz nachvollziehen) und das aktive Blatt ist plötzlich ein anderes, was den Fehler im Worksheet_SelectionChange-Ereignis auslöst.

Geh die Ereignisse einmal im Debug-Modus schrittweise durch und Du wirst sehen, wie oft das SelectionChange-Ereignis (auch sich selbst startet).

Ich würde Dir raten, diese endlosen Schleifen bzw. durch eigene Aktionen im Worksheet_SelectionChange-Ereignis ausgelösten Aufufe von sich selbst abzufangen. Das Worksheet_Change-Ereignis soll doch nicht das SelectionChange-Ereignis, sondern nur das Makro "Auswahl_Liste_zeigen" ausführen, oder nicht? Wenn ja, dann setze vorher ein Application.EnableEvents = False und nach der Ausführung des Makros "Auswahl_Liste_zeigen" ein Application.EnableEvents = True. Damit startet das SelectionChange-Ereignis nicht.

Viel Erfolg,
Charlie

Anzeige
Re: SelectionChange; ActiveCell
21.08.2002 21:00:52
RainerL
Hallo Charly,

vielen Dank für Deine Antwort. Mit Deiner Hilfe konnte ich das Problem lösen.

Rainer

;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige