Spalte via VBA innerhalb einer Tabelle verschieben

Guten Tag,

liebes Forum… :smile: Versuche mir gerade Excel-VBA anzueignen und habe folgendes Problem:

Ich will in einer Exceltabelle eine Spalte mit dem Header „Description“ ans Ende der Tabelle verschieben. Die Spalte muss nicht immer an der gleichen Stelle stehen. Soweitsogut. Bisher bin ich so an das Problem herangegangen, dass ich über die Suchfunktion den Header der Spalte gesucht habe und dann über

„ActiveCell.EntireColumn.Cut“

die Spalte ausgeschnitten hab. Dann habe ich die letzte Zelle der ersten Zeile mit

.Activate
.Range(„A1“).End(xlToRight).Select

angesteuert und mittels des Befehls

ActiveCell.Offset(0, 1).Select

die Zelle rechts daneben angesteuert und markiert. Dort beginnt mein Problem… Ich bekomme einfach nicht heraus wie ich die ausgeschnittene Spalte dort eingefügt bekomme, bzw. wie ich den Paste-Befehl formulieren muss.

Hie mal der fragliche Teil des Makros:

Dim str5 As string

'Verschiebung der Spalte Description ans Ende
'Ausschneiden der Spalte

str5 = „Description“
If str5 = „“ Then Exit Sub
ActiveSheet.UsedRange.Select
For Each Zelle In Selection
If Zelle = str5 Then
Zelle.Select
ActiveCell.EntireColumn.Cut

End If
Next Zelle

'Markierung der letzten belegten Zelle in Reihe 1

With Sheets(„Tabelle 1“)

.Activate
.Range(„A1“).End(xlToRight).Select

End With

'Einfügen der Spalte Description rechts der letzten belegten Spalte

ActiveCell.Offset(0, 1).Select

Im Vorhinein schon mal ein großes Danke!

Micha

Hallo Micha,

Ich will in einer Exceltabelle eine Spalte mit dem Header
„Description“ ans Ende der Tabelle verschieben.

str5 = „Description“
If str5 = „“ Then Exit Sub

Glaubst du der If-Befehl wird jemals ausgeführt?

Probiers mal so:

Sub tt()
Dim Spa As Long
On Error Resume Next
Spa = Application.Match("Description", Rows(1), 0)
Columns(Spa).Cut \_
 Destination:=Cells(1, Cells(1, Columns.Count).End(xlToLeft).Column + 1)
Columns(Spa).Delete
End Sub

Gruß
Reinhard

Funktioniert perfekt!

Vielen Dank
Micha