wieder mal sortieren
Ich wünsche einen schönen Tag, und hoffe es findet sich wieder jemand im
Forum der mir helfen kann.
Ich weiß nicht wieviel Anleitungen, Formeln und Tips ich hier gelesen und teilweise ausprobiert habe. Leider war nichts Passendes dabei.
Es geht um das Sortieren von Werten in einer Spalte. Evtl. bin ich immer daran gescheitert weil die Werte sehr unterschiedlich sind.
Ich habe Excel 2003 und mache in der Tabelle meine Eingabe in D1
Die Eingaben sehen z.B. wie folgt aus:
erff003
iff323
urff071
haff030
haff039
dlff037
spff023
dlff128
9aff012
smff027
9aff007
laff029
yoff025
lzff054
nach der Bestätigung eines Speicherbuttons tragen sich die Werte ab A2 fortlaufend wie zuvor ein. Ich dachte wegen der besseren Übersicht diese mit einem zusätzlichen Button sortieren zu können.
Die Sortierung in der Spalte sollte wie folgt aussehen:
Ab A2 zuerst alle Werte die mit einer 1 beginnen; dann weiter mit 2;3; usw. Nach den Zahlen nun die Buchstaben alphabetisch von A-Z.
Auch jede einzelne Stelle der Werte selbst von links nach rechts gelesen müssen beim Sortieren wie vor berücksichtigt werden. Ich hoffe ich habe mich verständlich genug ausgedrückt.
Ich habe zu wenig Kenntnis ob diese Art Sortierung mit Excel überhaupt möglich ist. Ich bräuchte also einen VBA Code den ich in ein Makro einbinden kann.
Auf eine Lösung würde ich mich freuen und sag schon einmal
herzlichen Dank
Antwort schreiben
Antwort 1 von Saarbauer vom 02.06.2022, 23:22 Options
hallo,
wenn du nach A sortierst, könnendie Daten in D nicht passend sortieren
Du musst dann nach D sortieren
Gruß
Helmut
Antwort 2 von Hajo_Zi vom 03.06.2022, 06:40 Options
Hallo Flori,
Helmut hat Recht, Du hast bestimmt in Spalte A Formeln.
Gruß Hajo
Antwort 3 von flori006 vom 03.06.2022, 09:52 Options
Hallo Helmut
hallo Hajo;
ich habe heute morgen mein Problem gelöst.
Ich habe das Makro jetzt aufgezeichnet und ein Sortierbutton angelegt.
Formeln stehen nicht in Spalte A .
Es sieht nun so aus:
Sub Sortieren()
Range("A2:A65536").Select
Application.CutCopyMode = False
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub
Wenn der Sortiervorgang beendet ist bleibt Spalte A markiert. Ist es möglich das Aufheben der Markierung noch über den Code zu steuern ?
Mein Problem gestern lag wohl an der Markierung.
So funktioniert alles wie gewollt.
Gruß
flori006
Antwort 4 von fedjo vom 03.06.2022, 10:23 OptionsLösung
Hallo flori006 ,
Select ist nicht nötig.
Gruß
fedjo
Sub Sortieren()
Application.CutCopyMode = False
Range("A2:A65536").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End Sub
Antwort 5 von nighty vom 03.06.2022, 10:56 Options
hi all ^^
statt 65536 wuerde ich rows.count vorschlagen
gruss nighty
Antwort 6 von Saarbauer vom 03.06.2022, 11:12 Options
Hallo,
wenn du nach Spalte A sortierst können die Daten in Spalte d nur richtig sortiert sein, wenn die Spalten einen identischen Inhalt haben, sonst passt es nicht oder deine Daten in Spalte A und D sind irgendwie , ob durch Zufall oder andere Abhängigkeiten ebenfalls genauso aufsteigend wie die Daten in Spalte A
Gruß
Helmut.
Antwort 7 von flori006 vom 03.06.2022, 12:02 Options
Hallo zusammen;
erst einmal vielen Dank für Eure schnelle Hilfe !
Ich habe den Code einfach geändert wie fedjo vorgeschlagen hat.
Also nur Select weggelassen. So läuft nun alles wie ich es haben möchte.
Also, wieder was gelernt -
beste Grüße und schönen Sonntag
flori006
Antwort 8 von Hajo_Zi vom 04.06.2022, 06:49 Options
Hallo flori,
es wird aber nur Spalte A sortiiert, falls die anderen Spalten auch sortiert werden sollen und es sind keine Leerspalten oder Leerzeilen vorhanden reicht Range("A2")........
Gruß Hajo
Antwort 9 von flori006 vom 04.06.2022, 10:27 Options
Guten Tag Hajo;
danke für die mail.
Es sollte schon so sein das nur Spalte A ab Zeile 2 sortiert wird.
Also ich bin sehr zufrieden so wie es jetzt läuft.
Sollte ich mal wieder mit Excel nicht weiterkommen, werde ich mich gerne wieder an Euch wenden.
Besten Dank
Gruß
flori006
Antwort 10 von flori006 vom 15.06.2022, 11:19 Options
Einen schönen guten Tag allerseits;
seit einigen Stunden komme ich mit Excel mal wieder nicht weiter, und hoffe das mir jemand helfen kann. Habe natürlich schon viel im Forum gesucht, aber nichts Passendes gefunden.
Ich habe mir ein kleinesLog erstellt was im großen Ganzen schon ganz gut funktioniert.
Mein Problem ist jetzt:
In K1 habe ich folgenden Befehl geschrieben -
=WENN(ZÄHLENWENN(A:A;A:A)>1;"Gelogt !";"")
Ich möchte aber gerne das erst ab A3 gezählt wird da ich A1und A2 für die Überschrift gebrauchen möchte.
Das andere Problem ist ein erstelltes Makro zu Löschen des letzten Eintrags wie folgt -
Sub Löschen()
MsgBox "Gelöscht"
Range("A" & Range("A65536").End(xlUp).Row).ClearContents
End Sub
Hierbei hätte ich gerne das genau wie in Spalte A auch der letzte Eintrag in Spalte D und F mitgelöscht wird.
Vielen Dank für Eure Mühe
Gruß flori006
Antwort 11 von Saarbauer vom 15.06.2022, 12:47 Options
Hallo,
mahe es so
Sub Löschen()
MsgBox "Gelöscht"
Range("A" & Range("A65536").End(xlUp).Row &":F"&"A" & Range("A65536").End(xlUp).Row).ClearContents
End Sub
Gruß
Helmut
Antwort 12 von flori006 vom 15.06.2022, 13:45 Options
Hallo Helmut;
danke für die Hilfe
Leider klappt es bei beiden Problemen doch nicht so wie ich dachte,
obwohl ich Dir schon mitgeteilt hatte, daß das erste Problem ok ist.
Ich hatte die Funktion aber nur auf A3 ausgeführt.
Sie soll aber auf alle weiteren Zellen in Spalte A verwendet werden.
Das funktioniert aber leider nicht.
Ich versuche noch mal es zu erklären.
Du hattest mir ja vorgeschlagen:
=WENN(ZÄHLENWENN(A:A;A3)>1;"Gelogt !";"")
Ich denke hier wird dann nur mit A3 verglichen ?
Wie gesagt es soll für alle Zellen in Spalte A ab A3 nach unten gültig sein.
Zu Deinem Vorschlag mit dem Makro -
Dieser löscht mir von Spalte A bis Spalte I alle Eingaben und Formeln.
So sollte es nicht sein.
Ich dachte man könnte das Makro so erweitern das die letzten Eintragungen in Spalte D und F mitgelöscht werden.
Mit Spalte A klappt das ja. Es soll also nur in Spalte A Spalte D und Spalte F die letzte Eintragung wieder gelöscht werden können.
Die Werte und Formeln in den anderen Spalten müssen erhalten bleiben.
Hier nochmal das Makro das ich bisher versucht hatte:
Sub Löschen()
MsgBox "Gelöscht"
Range("A" & Range("A65536").End(xlUp).Row).ClearContents
End Sub
Ich hoffe ich mache nicht zuviel Stress
Beste Grüße
flori006
Antwort 13 von Saarbauer vom 15.06.2022, 14:35 Options
Hallo,
dann müsste es so gehen
Sub Löschen()
MsgBox "Gelöscht"
Range("A" & Range("A65536").End(xlUp).Row).ClearContents
Range("E" & Range("A65536").End(xlUp).Row).ClearContents
Range("F" & Range("A65536").End(xlUp).Row).ClearContents
End Sub
Gruß
Helmut
Antwort 14 von Saarbauer vom 15.06.2022, 14:39 Options
Hallo,
natürlich
Sub Löschen()
MsgBox "Gelöscht"
Range("A" & Range("A65536").End(xlUp).Row).ClearContents
Range("D" & Range("A65536").End(xlUp).Row).ClearContents
Range("F" & Range("A65536").End(xlUp).Row).ClearContents
End Sub
zum anderen Problem kann ich wegen Verständnisproblemen zur Zeit keine Lösung anbieten.
Ich verstehe es im Moment so, du willst alle Zellen in A mit allen Zellen in a vergleichen, dafür kenn ich keine Lösung
Gruß
Helmut
Antwort 15 von flori006 vom 15.06.2022, 15:44 Options
Hallo Helmut;
So gehts leider auch nicht.
Das hatte ich zu Beginn auch schon versucht.
Ich habe mittlerweile einen anderen Weg gefunden womit ich ich das erste Problem gelöst habe.
Über eine bedingte Formatierung mache ich den Vergleich.
Ich werde mal weiter versuchen das Löschmakro umzuschreiben.
Besten Dank nochmal
Gruß
flori006