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

Codeergänzung sortieren

Forumthread: Codeergänzung sortieren

Codeergänzung sortieren
WalterK
Hallo,
vor einiger Zeit habe ich den nachstehenden Code im Forum erhalten. Er fügt (falls bestimmte Bedingungen erfüllt) sind eine Spalte ein, fügt die Daten von 2 Spalten ein, löscht die beiden "alten" Spalten, benennt die Überschrift um und sortiert als letztes die Tabelle nach der eingefügten Spalte. Die Überschriften sind immer in Zeile 2. Funktioniert auch tadellos.
Ein kleine Ergänzung müsste noch umgesetzt werden:
Sollte vor dem letzten Schritt des Codes (dem Sortieren) unmittelbar rechts neben der "neuen" Spalte "VOR- UND ZUNAME" eine Spalte mit der Überschrift "BEGINN" oder "VON" oder "ANFANG" sein, dann sollte die Sortierung zuerst nach der Spalte "VOR- UND ZUNAME" und dann noch nach der Spalte "BEGINN" oder "VON" oder "ANFANG" erfolgen.
Wer kann mir weiterhelfen?
Hier ist der Code:
Dim varCol_ZUNAME As Variant, lngZeileLetzte As Long
varCol_ZUNAME = Application.Match("ZUNAME", Rows(2), 0)
If IsError(varCol_ZUNAME) Then Exit Sub
lngZeileLetzte = Cells(Rows.Count, CLng(varCol_ZUNAME)).End(xlUp).Row
If lngZeileLetzte < 3 Then Exit Sub
Columns(2).Insert shift:=xlShiftToRight
varCol_ZUNAME = Application.Match("ZUNAME", Rows(2), 0)
Columns(CLng(varCol_ZUNAME) - 1).Copy
Columns(2).PasteSpecial xlPasteFormats
Application.CutCopyMode = False
varCol_ZUNAME = Application.Match("ZUNAME", Rows(2), 0)
Range(Cells(3, 2), Cells(lngZeileLetzte, 2)).FormulaR1C1 = "=" & "RC[" & varCol_ZUNAME - 2 & _
"]&"" ""&RC[" & varCol_ZUNAME - 3 & "]"
Range(Cells(3, 2), Cells(lngZeileLetzte, 2)).Formula = Range(Cells(3, 2), Cells( _
lngZeileLetzte, 2)).Value
Range(Columns(CLng(varCol_ZUNAME) - 1), Columns(CLng(varCol_ZUNAME))).Delete
Cells(2, 2) = "VOR- UND ZUNAME"
Columns(2).AutoFit
Range("A3:IV65536").Select
Selection.Sort Key1:=Range("B3"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("A2").Select
Danke und Servus, Walter
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Codeergänzung sortieren
22.08.2010 14:44:56
Gerd
Servus Walter,
wegen anderer xlVersion habe ich nicht getestet.
Meine Rückfrage in deinem anderen Beitrag hast Du nicht mehr beantwortet. Ggf. gibt es da
für "TextToColumns" eine kürzere Alternative.
Cells(2, 2) = "VOR- UND ZUNAME"
Columns(2).AutoFit
'"BEGINN" oder "VON" oder "ANFANG"
'Sortierung zuerst nach der Spalte "VOR- UND ZUNAME" und dann noch nach der Spalte "BEGINN" oder "VON" oder "ANFANG" erfolgen.
If Cells(3, 2) = "BEGINN" Or Cells(3, 2) = "VON" Or Cells(3, 2) = "ANFANG" Then
Range("A3:IV65536").Sort Key1:=Range("B3"), Order1:=xlAscending, _
key2:=Range("C3"), Order2:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Else
Range("A3:IV65536").Sort Key1:=Range("B3"), Order1:=xlAscending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
End If
Range("A2").Activate
Gruß Gerd
Anzeige
AW: Korrektur: Cells(2, 3) ! o.T.
22.08.2010 15:10:54
Gerd
Gruß Gerd
AW: Codeergänzung sortieren
22.08.2010 15:19:43
WalterK
Hallo Gerd,
Meine Rückfrage in deinem anderen Beitrag hast Du nicht mehr beantwortet Ich habe gar nicht mitbekommen, dass Du noch eine Rückfrage gestellt hast. Vielleicht auch darum, weil bereits alles bestens funktioniert hat.
Den heutigen Code habe ich noch nicht zum Laufen gebracht. Es wird die Spalte VOR- UND ZUNAME wie gewollt sortiert, die Spalte mit "BEGINN" oder "VON" oder "ANFANG" wird aber nicht mitsortiert.
Danke uns Servus, Walter
Anzeige
Natürlich funktioniert der Code ...
22.08.2010 15:22:40
WalterK
Hallo Gerd,
wieder bestens. Habe nicht aktualisiert und darum deine Berichtigung erst zu spät gesehen.
Danke nochmals und Servus, Walter
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige