Sort-Baustelle
08.04.2012 17:23:45
Erich
Hi Klaus,
ja, meine Sort-Prozedur sortierte fälschlicherweise ab Zeile1.
Das ist hier abgestellt, die Zeilen werden nun ab Zeile 3 sortiert:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 And Target.Row > 2 Then
If Target.Column = 1 Then Sort_A Else SortMyRow Target.Row
End If
End Sub
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Target.Count = 1 And Target.Column = 1 And Target.Row > 2 Then
Cancel = True
If MsgBox("Daten von: [" & Target.Value & "] komplett löschen?", vbYesNo) = _
vbYes Then Target.EntireRow.Delete
End If
End Sub
Sub Sort_A()
Dim rngBer As Range
On Error GoTo ErrEnd
Set rngBer = Range(Cells(3, 1), Cells(3, 1).SpecialCells(xlCellTypeLastCell))
Application.EnableEvents = False
rngBer.Sort Key1:=Cells(3, 1), Order1:=xlAscending, _
Header:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
ErrEnd:
Application.EnableEvents = True
End Sub
Sub SortMyRow(lngRow As Long)
Dim rngBer As Range
On Error GoTo ErrExit
Set rngBer = Cells(lngRow, 2).Resize(, _
Cells(lngRow, Columns.Count).End(xlToLeft).Column - 1)
Application.EnableEvents = False
rngBer.Sort Key1:=Cells(lngRow, 2), Order1:=xlAscending, _
Header:=xlNo, OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight
ErrExit:
Application.EnableEvents = True
End Sub
Die letzte Prozedur "SortMyRow" hat sich gar nicht geändert.
In "Sort_A" ist drei mal aus Cells(1,1) nun Cells(3,1) geworden.
Bei den ersten beiden Prozeduren hab ich nur ergänzt, dass bei Änderungen in Zeile 1 oder 2 nicht sortiert wird.
Zum Wiederfinden deiner Beiträge:
Wenn du dir die Forums-Liste https://www.herber.de/forum/body.html
ansiehst,
kannst du leicht mit Strg+F (Suchen) nach Klaus Reich alle deine Beiträge finden.
Über neue Beiträge in Threads, an denen ich beteiligt bin, werde ich per Mail informiert. Ich habe auf Seite
https://www.herber.de/forum/weitere.html
"Antworter" angeklickt, dort meine eMail eingetragen und registrieren lassen.
Das haben hier wohl viele Antworter getan.
Das trotzdem solche "Dauerkontakte" schon mal wieder enden, kann viele Gründe haben.
Vielleicht verliert ein Antworter die Lust, sich mit bestimmten Problemen zu beschäftigen.
Oder er gibt auf. Oder er hat wichtigere andere Dinge zu tun. Oder er sitzt längere Zeit nicht am PC.
Ob es an deinen Fragen, deinem Umgang mit den Antworten, der Lust und Zeit des Antworters oder
an irgend welchen Gegebenheiten außerhalb der beiden Beteiligten liegt, ist manchmal schwer zu sagen.
"Oder daran, daß ich mich als Anfänger sofort oute ?" sehe ich nicht als möglichen Grund an.
Hier hat sicher niemand etwas gegen Anfänger!
Ich habe hier absichtlich als Betreff "Sort-Baustelle geschrieben - nach dem Motto: Eins nach dem anderen!
Sätze wie
"Ansonsten kann man mögl.weise über Dein Worksheet_Change- oder das fcs-Einfärbern der Städte-
Ereignis die Marker auf der Karte setzen."
versuchen, gleich eine oder mehrere neue Baustelle zu eröffnen. Das bringt nur Durcheinander und Verdruss.
Von "Einfärben" sehe ich in den aktuellen Mappen überhaupt nichts. Der Begriff "Interior" kommt nur
ein mal vor - in der Zeile "Bereich.Interior.ColorIndex = xlNone" in der Mini-Propzedur "entfaerben".
Bitte widerstehe der Versuchung, mir das hier zu erklären. Ich mag einfach nicht in deiner Historie
nach einem "fcs-Einfärben" suchen.
Besser wäre, zu diesem neuen Problem einen neuen Thread zu eröffnen, mit einer Beispielmappe,
die alles enthält, was zur Fragestellung gehört (z. B. "Einfärbe"-Code).
Und dabei solltest du deine Frage (nicht fünf) möglichst präzise am Beispiel erklären.
(Was funktioniert nicht, produziert welchen Fehler, sollte dies und jenes auch können, ...)
Wenn du einen solchen neuen Thread beginnst, ist dort sicher auch ein Link auf die Vergangenheit nützlich,
also ein Link auf die Archiv-Threads
https://www.herber.de/forum/archiv/1256to1260/t1258151.htm
https://www.herber.de/forum/archiv/1252to1256/t1254470.htm
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich