AW: variablen Bereich markieren und sortieren
11.05.2004 12:16:32
Heinz
Hallo Fritz
mal ein anderer Weg (Achtung: Ich lasse Deine Tabelle in "Tabelle1" auch in Zeile 4 beginnen.
- Länge der Tabelle in Tabelle1 bestimmen
- In Tabelle2 Formeln einfügen
- Formeln nach unten kopieren
- Formeln in Werte umwandeln
- Sortieren
Sub Sort()
02..Dim Ze As Long
....'variable für erste Zeilennummer der Tab in Blatt Tabelle1
03..Dim Za As Long
....'variable für letzte Zeilennummer der Tab in Blat Tabelle1
04..Sheets("Tabelle1").Activate 'aktiviert Arbeitsblatt Tabelle1
05..Za = 5 'bestimmt Zeilenanfang als Zeile 5 (Vorgabe)
06..Ze = Range("A65536").End(xlUp).Row
....'bestimmt Tabellenende (letzte Zeile)
07..Sheets("Tabelle2").Activate 'aktiviert Tabelle2
08..Range("A5").Activate 'fügt in A5 die Formel ein
09..ActiveCell.FormulaR1C1 = _
......."=IF(AND(ISTEXT(Tabelle1!RC),Tabelle1!RC[2]=""x""),Tabelle1!RC,"""")"
10..Range("B5").Activate 'fügt in B5 die Formel ein
11..ActiveCell.FormulaR1C1 = _
......."=IF(AND(ISTEXT(Tabelle1!RC[-1]),Tabelle1!RC[1]=""x""),Tabelle1!RC,"""")"
1..Range("A5:B5").Select 'aktiviert Bereich A5 bis B5 (mit den Formeln)
13..Selection.AutoFill Destination:=Range("A5" & ":B" & Ze)
....'auto Fill nach unten
14..Range("A" & Za & ":B" & Ze).Select 'markiert Tabelle
15..Selection.Copy 'kopieren
16..Selection.PasteSpecial Paste:=xlPasteValues 'fügt Werte ein
17..Range("A5:A" & Ze).Select 'markiert Texte in Spalte A
18..Selection.TextToColumns Destination:=Range("A5"), DataType:=xlDelimited, _
19..TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
.......Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
.......:=Array(1, 1), TrailingMinusNumbers:=True 'fügt Werte ein
20..Range("A5:B" & Ze).Select 'markiert ganze Tabelle
21..Selection.Sort Key1:=Range("A5"), Order1:=xlAscending, Header:=xlNo, _
.......OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
.......DataOption1:=xlSortNormal 'sortiert
22..Range("A5").Select 'geht in Zelle A5
End Sub
Da ich bei der Übernahme von Texten immer ein "'" Zeichen erhalte (keine Ahnung warum), dass man nur in der Eingabe-Zeile sieht (aber das beim sortieren stört), habe ich in den Zeilen 17 bis 19 einen Zwischenschritt eingebaut (entspricht einen "Daten-Text in Spalten einfügen" über das Menue und wird eigentlich eingesetzt um Werte aus einer Datenbank zu übernehmen).
Du kannst das Makro natürlich ablaufen lassen, wenn Du die Tabelle aktivierst, aber da Du wahrscheinlich mal auch so auf die Tabelle2 gehst, würde ich Dir eher für zu einem Schalter raten oder das Makro bei Bedarf mit einem Tastaturbefehl starten.
So OK?
Heinz