VBA Excel - Spalten kopieren und Einfügen?

3 Antworten

Die Beste Variante ist, wenn die Zelle auch "TotalQty" heißt (also du markierst die Zelle und schreibst dann oben links, wo die Adresse der Zelle steht, einfach TotalQty rein)

Dann ist der Code ziemlich kurz:

Sub Makro1()
Columns("E:H").Copy
Cells(1, Range("TotalQty").Column - 1).Insert shift:=xlShiftToRight End Sub

Wenn die Zelle keinen Namen hat und einfach nur "Total Qty" drinsteht, musst du halt nach der Zelle suchen. Das wäre dann ein kleines bisschen aufwändiger.

For Each Zelle In Range("B1:B10")

If Zelle.Value = "Total Qty" Then a = Zelle.Column

Next

Columns("E:H").Copy
Cells(1, a).Insert

So wie ich es verstanden habe, muss man immer erst nachdem Begriff suchen, dieser steht in einer Zelle, da gibt es zwei Möglichkeiten:

So könntest du es machen (siehe oben), Range("B1:B10") musst du anpassen, je größer die Range, desto länger dauert es, das ist schlecht.

Ich würde es daher so machen:


Set Rng = Range("A:ZZ").Find("Total Qty")


Columns("E:H").Copy

Cells(1, CInt(Rng.Column)).Insert

Du musst deine Spaltenzeile nach "Total Qty" durchsuchen (z. B. For Each rZelle in Range("A1:ZZ1")), dann davon die Vorspalte ermitteln (.Column-1) und dann bist du wieder bei deinem Code angelangt, wenn du diese Spalte selektierst.