Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
148to152
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
148to152
148to152
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige