VBA Excel - Spalten kopieren und Einfügen?
Ich möchte mittels VBA-Button gerne eine Anzahl von Spalten kopieren um meine Kalkulation somit zu erweitern.
Spalte E:H bilden die "Master-Spalten-Set". Diese Spalten sollen immer vor der Spalte in der die Zelle "Total Qty" vorkommt kopiert werden.
Mein aktueller Code lautet:
Sub Makro1()
Columns("E:H").Select
Selection.Copy
Columns("Q:Q").Select
Selection.Insert Shift:=xlToRight
End Sub
Wie muss ich diese Code erweitern um variable vor der Spalte mit der Zelle "Total Qty" das "Master-Spalten-Set" einzufügen?
Danke
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.