Hallo Manu,
hier mal ein Versuch mit deinen oben angegebenen Daten.
Von folgenden Voraussetzungen bin ich ausgegangen:
Spalten die neu angeordnet werden sollen sind im Blatt 1, die Überschriften sind in Zeile 1
In Spalte G, also mit einer leeren Zelle Abstand zur letzten Überschrift, schreibst du die Überschriften, so wie du sie angeordnet haben willst. Die Zielspalten ergeben sich dann aus der Zeile in der du die entsprechende Überschrift rein schreibst. Sprich die Überschrift die in Zeile 1 steht kommt nach Spalte 1 (A), die in Zeile 2 kommt nach Spalte 2 (B) usw.
Zielblatt ist das Blatt 2
Option Explicit
Public Sub Neue_Ordnung()
Dim loSpalte As Long
Dim raSuchbereich As Range, raSuchbegriff As Range
Dim raZelleSpalte As Range, raZelleZeile As Range
Application.ScreenUpdating = False
With Worksheets("Tabelle1")
loSpalte = .Cells(1, 1).End(xlToRight).Column
Set raSuchbereich = .Range(.Cells(1, 1), .Cells(1, loSpalte))
Set raSuchbegriff = .Range("G1:G" & .Cells(.Rows.Count, 7).End(xlUp).Row)
For Each raZelleZeile In raSuchbegriff
For Each raZelleSpalte In raSuchbereich
If raZelleZeile.Value = raZelleSpalte.Value Then
.Columns(raZelleSpalte.Column).Copy Worksheets("Tabelle2").Columns(raZelleZeile.Row)
Exit For
End If
Next raZelleSpalte
Next raZelleZeile
End With
Set raSuchbereich = Nothing: Set raSuchbegriff = Nothing
Application.ScreenUpdating = True
End Sub
Gruß Werner
|