Vergleichen von Spalten und Neuordnung

hallo, ich bräuchte eine Lösug:

also, ich habe eine große Tabell mit ca 100 Zeilen. In der ersten Spalte steht die PLZ. Innerhalb dieser Tabelle sind verschiedene Sortierun´gen, so daß ich von der reihenfolge nichts verändern will, die PLZ sind nicht numerisch angeordnet, sondern nach bestimmten Kriterien durcheinander.
Jetzt muß in vielen Zeilen ein anderer Wert stehen.

Ich habe daher einen neue Tabelle in der in der 1. Spalte die PLZ numerisch von klein nach groß angeordnet sind.
Es ist jetzt ziemlich aufwendig die Daten die zu einer PLZ gehören, in die andere Tabelle zu kopieren, da man zuerst die Zeile mit der dazugehörigen PLZ finden muß.
Kann ich die 2. Tabelle in einer Art Vergleich automatisch so sortieren lassen, das die zeilen genauso angeordnet sind wie in Tabelle 1, von der Reihenfolge her???

sorry, aber ich bin kein Computerexperte sondern Bodymodder.

Der eingegebene Text ist zu kurz. Bitte gib im Textfeld mindestens 80 Zeichen ein. 

Hallo Namenloser/e,

mit SVERWEIS das Kriterium auslesen und sortieren.
Gruß - Wolfgang

Hallo,

wie schon angedeutet SVERWEIS

=SVERWEIS(Feld neu sortierte PLZ; Bereich der alten PLZ; auszugebende Spalte rechts davon sicher 1)

Viel Erfolg

FSeiler

Hallo Walter,

also 100 Zeilen sind keine große Tabelle :wink:
Ist aber auch egal. Wichtiger wäre, von den MehrfachTabellen wegzukommen.
Man kommt so gut wie immer mit einer einzigen Datentabelle aus.
Wenn Du Angst hast, Deine ursprüngliche Sortierung zu verlieren, füge eine Spalte mit fortlaufender Nummerierung ein und sortiere bei Bedarf danach.
Wenn Dir die Tabelle zu groß wird, filtere und blende aus ( gruppieren ).

Das folgende Makro sortiert immer nach der Spalte, in der der Cursor steht.
Vielleicht kannst Du es gebrauchen. Es hat große Vorteile, wenn die zu ändernden Zeilen in einem Block stehen. Das bekommt man durch geschickte Sortierung schnell hin :smile:

Viel Erfolg

Thomas

P. S.: Alle Zeilen bis zur 8. werden nicht mitsortiert - „Überschriften“.

Option Explicit
Dim AR As Long: Dim AC As Long 'activecell.row + .column
Dim LR As Long: Dim LC As Long ‚ActiveCell.SpecialCells(xlLastCell).Row+ .column
Dim R1 As Integer: Dim C1 As Integer ‚1.DatenZeile und -Spalte
Dim R0 As Integer: Dim i As Long ’ R0=Zeile mit AusBlendMarkierungen‘
Dim C0 As Integer: ’ C0=Zeile mit AusBlendMarkierungen‘
Dim Modus As Boolean
Dim bolSperre As Variant

Public Static Sub GetMoreSpeed(Optional ByVal Modus As Boolean = True)
Dim intCalculation As Integer, bolSperre As Boolean
If Modus = True Then
intCalculation = Application.Calculation
bolSperre = ActiveSheet.ProtectContents
ActiveSheet.Unprotect
Else
If bolSperre = True Then ActiveSheet.Protect
End If
With Application
.ScreenUpdating = Not Modus
.EnableEvents = Not Modus
.Calculation = IIf(Modus = True, xlManual, intCalculation)
.Cursor = IIf(Modus = True, xlWait, xlDefault)
End With
End Sub

Sub sortieren_nach_aktueller_Spalte_2003()
Call GetMoreSpeed(True)
’ Makro am 16. 03. 2012 von Thomas Schütte aktualisiert
'dieses Makro läuft auch unter Excel 2003.
'Dieses Makro sortiert alle belegten Zellen unterhalb der letzten ÜberschriftenZeile nach
'der Spalte, in der der Cursor bei Auslösung steht. Vorher werden alle ausgeblendeten Zellen eingeblendet und Filter zurückgesetzt.
'Voraussetzung: Überschriften und Konstanten in Zeile 1 bis 8 ( werden nicht mitsortiert )
’ Spalten vor c1 werden ebenfalls nicht mitsortiert.
With ActiveSheet
R1 = IIf(.Cells(1, 20).Value = 0, 9, .Cells(1, 20).Value) ’ R1=9:Überschriften NUR OBERHALB Zeile 9!!!
C1 = IIf(.Cells(1, 21).Value = 0, 1, .Cells(1, 21).Value) ’ C1=4:Steuerungs-Spalten NUR VOR Spalte 4!!!
If .FilterMode Then .ShowAllData
End With
LR = ActiveCell.SpecialCells(xlLastCell).Row: LC = ActiveCell.SpecialCells(xlLastCell).Column
AR = ActiveCell.Row: AC = ActiveCell.Column
Cells.EntireColumn.Hidden = False
Cells.EntireRow.Hidden = False
Range(Cells(R1 - 1, C1), Cells(LR, LC)).Sort Key1:=Range(Cells(R1, AC), Cells(LR, AC)), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortTextAsNumbers
Call GetMoreSpeed(False)
End Sub