Aktivierte Zelle nach ABC-Sortierung

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Aktivierte Zelle nach ABC-Sortierung
von: Marco
Geschrieben am: 18.08.2015 11:04:17

Hallo,
ich habe ein Problem.
In Spalte C sollen ab Zeile 15 zukünftig mehr als 500 Namen stehen.
Spalte C Nachname, Spalte D Vorname
Per Makro wird ein neuer Eintrag in der ersten freien Zelle bei Nachname in Spalte C, z.B. in Zeile 450 nach der Eingabetaste sofort alphabetisch sortiert. So würde ein Nachname der mit "A" beginnt automatisch ganz nach oben rutschen.
Die aktivierte Zelle bleibt dann aber leider in Zeile 451. Jetzt müsste ich wieder manuell ganz nach oben scrollen, den Namen suchen und kann dann erst den Vornamen eingeben.
Gibt es eine Möglichkeit, dass die aktivierte Zelle nach der alphabetischen Sortierung auch quasi mitgenommen wird und nicht unten bleibt?
Ich habe von Makros und VBA so gut wie keine Ahnung und tüftel mir alles per Google und solchen Foren zusammen.
Die Datei habe ich angehängt.
https://www.herber.de/bbs/uder/99662.xls
Über Hilfe würde ich mich sehr freuen.
Gruß MArco

Bild

Betrifft: AW: Aktivierte Zelle nach ABC-Sortierung
von: Daniel
Geschrieben am: 18.08.2015 11:26:50
Hi
ich würde da nicht automatisch sortieren, sonden einen Extra Button zum Sortieren anlegen, so dass erst auf Wunsch des Eingebers hin sortiert wird.
vielleicht will er ja aus einer Liste mehrere Namen eingeben und dann ist es übersichtlicher, wenn man erst am Schluss sortiert.
ausserdem solltest du nicht nur nach dem Nach- sondern auch nach dem Vornamen sortieren, denn ein Name kann ja mehrfach vorkommen.
Dh du dürftest dann sowieso erst nach Eingabe des Vornamens sortieren.
Gruß Daniel

Bild

Betrifft: AW: Aktivierte Zelle nach ABC-Sortierung
von: Marco
Geschrieben am: 18.08.2015 11:52:14
Ok hab' einen weiteren CommandButton zum Sortieren eingepflegt und das Makro rausgenommen.
https://www.herber.de/bbs/user/99665.xls
Das Problem bleibt aber bestehen. Gebe ich in Zeile z.B 400 den Namen ein und drücke dann auf den Button "Sortieren" bleibt die aktive Zelle in Zeile 400. Ich würde die aber gerne zur entsprechend einsortierten Zelle mitnehmen.
Ansonsten muss ich jetzt komplett manuell hochscrollen und suchen.

Bild

Betrifft: AW: Aktivierte Zelle nach ABC-Sortierung
von: Daniel
Geschrieben am: 18.08.2015 12:29:47
Hi
dann probier mal folgenden Code zum Sortieren:


Dim Zelle As Range
ActiveSheet.Unprotect
If ActiveCell.Row > 14 Then
    Set Zelle = Cells(ActiveCell.Row, 3)
    Zelle.Value = Zelle.Value & "|"
End If
Range("c15:bg800").sort Key1:=Range("c15"), key2:=Range("D15")
If Not Zelle Is Nothing Then
    Cells(Columns(3).Find(what:="*|", lookat:=xlWhole).Row, ActiveCell.Column).Select
    Columns(3).Replace "|", "", xlPart
End If
ActiveSheet.Protect
hierbei wird dann in der aktiven Zeile an den Text in der Spalte C vor dem Sortieren ein bestimmtes Zeichen ("|"), welches sonst nicht vorkommt angeängt.
Nach dem Sortieren sucht dann das Makro die Zelle mit diesem Zeichen, aktiviert die Zelle und löschst das Zeichen wieder.
ist war etwas umständlich, aber eine andere Lösung fällt mir grad auch nicht ein.
Gruß Daniel

Bild

Betrifft: AW: Aktivierte Zelle nach ABC-Sortierung
von: Matthias
Geschrieben am: 18.08.2015 13:48:11
Das hat ich mir in einfacher Form auch schon gedacht, nur steht das ganze in einem Change_Event. _ Wenn du also


Zelle.Value = Zelle.Value & "|" 
ausführst, hängst du dir in einer Dauerschleife ein ganzes Heer an Zeichen hintenran, leider.

Bild

Betrifft: AW: Aktivierte Zelle nach ABC-Sortierung
von: Daniel
Geschrieben am: 18.08.2015 13:51:42
Hi
in der letzten ausführung steht das Sortieren nicht mehr im Change-Event.
Event-Makros kann man im Bedarfsfall mit: Application.EnableEvents = False dekativieren und mit Appication.EnableEvents = True wieder einschalten (die zuletzt gemachte Einstellung bleibt nach Makroende erhalten!)
Gruß Daniel

Bild

Betrifft: AW: Aktivierte Zelle nach ABC-Sortierung
von: Matthias
Geschrieben am: 18.08.2015 13:54:44
Oder zwei Bereiche im Change-Event

ActiveSheet.Unprotect
    Dim Bereich As Range
    Dim Bereich2 As Range
    Set Bereich = Range("C15:C500")
    Set Bereich2 = Range("D15:D500")
        If Not Intersect(Target, Bereich) Is Nothing Then ' Zelle ist im Bereich
        Cells(Target.Row, Target.Column + 1).Value = "Schlüsselwort"
        ElseIf Not Intersect(Target, Bereich2) Is Nothing Then
        Range("C15:BG800").sort Key1:=Range("C15")
        End If
ActiveSheet.Protect


Bild

Betrifft: AW: Aktivierte Zelle nach ABC-Sortierung
von: Daniel
Geschrieben am: 18.08.2015 13:59:29
dann mach das am Tabllenende, wo du nicht gefahr läufst, dir irgendwelch Inhalte zu überschreiben.
Das Application.EnableEvents = False würde ich trotzdem verwenden, um den Selbstaufruf zu unterbinden, auch wenn durch eine entsprechende Abfrage die Endlosschleife vermieden wird.
Auch der einmalige Selbstaufruf ist lästig, wenn du bespw im Einzelstep testen musst.
Gruß Daniel

Bild

Betrifft: AW: Aktivierte Zelle nach ABC-Sortierung
von: Matthias
Geschrieben am: 18.08.2015 14:11:07
Das ist eine Feinheit, die der Anfragesteller selbst entscheiden kann, ist ja nicht wirklich schwer aus der 1 eine größere Zahl zu machen. Bzw ist diese Variable die ich da eingebaut habe nicht mal wirklich notwendig, da die Target.Column immer die gleiche ist, nämlich 3+1=4.
Außerdem bin ich faul, ich lasse damit gleich das Schlüsselwort überschreiben, weil es ja im Vornamen steht. So müsste ich noch eine Zeile mehr schreiben um das nach dem Suchen wieder zu entfernen :P
lg Matthias

Bild

Betrifft: AW: Aktivierte Zelle nach ABC-Sortierung
von: Daniel
Geschrieben am: 18.08.2015 14:24:28
und wenn der Anwender den Vornamen schon eingegeben hat?
weil er bspw den Nachnamen nachträglich nochmal ändern will?
Gruß Daniel

Bild

Betrifft: AW: Aktivierte Zelle nach ABC-Sortierung
von: Matthias
Geschrieben am: 18.08.2015 11:56:51
Hallo Marco
fang doch erst mit dem Vornamen an, dann brauchst du auch nix ändern. Der rutscht nämlich nicht weg :P
lg Matthias

Bild

Betrifft: AW: Aktivierte Zelle nach ABC-Sortierung
von: Marco
Geschrieben am: 18.08.2015 12:10:03
Hallo Matthias, das löst aber das Problem trotzdem nicht. Die aktivierte Zelle bleibt trotzdem da "unten" wenn sortiert wurde.

Bild

Betrifft: AW: Aktivierte Zelle nach ABC-Sortierung
von: Matthias
Geschrieben am: 18.08.2015 14:02:47
Ich weiss ja nicht wofür du unbedingt die aktive Zelle bewegt haben muss. Man kann erst alle anderen Eingaben machen und den Nachnamen ja zu allerletzt eingeben,gut ist.
Es sei denn du willst weitere Makros dort ranhängen, ansonsten macht das wenig Sinn soviel Aufwand dort reinzustecken. Naja, jedenfalls hast du jetzt ein paar Möglichkeiten genannt bekommen.

Bild

Betrifft: AW: Aktivierte Zelle nach ABC-Sortierung
von: Marco
Geschrieben am: 18.08.2015 15:08:03
Hallo Danke erstmal....muss arbeiten und hatte bisher keine Zeit mir die Lösungsvorschläge weiter anzusehen. Mach ich später. Gruß Marco

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Aktivierte Zelle nach ABC-Sortierung"