2.6k Aufrufe
Gefragt in Tabellenkalkulation von felixso Einsteiger_in (79 Punkte)
Hallo,

es geht um das folgende Problem:
Ich möchte aus einer Excel-Arbeitsmappe (Tabelle1) die Spalte 1 kopieren und in der gleichen Excel-Arbeitsmappe in Tabelle 2 einfügen, wenn eine Bedinung (hier der Wert 1 in der Zeile 1) erfüllt ist.
Dazu habe ich anhand von Internetrecherche das folgende Makro einfache erstellt:

Sub kopieren()

Sheets(1).Range("A1:A10").Copy
For Each c In Sheets(2).Range("A1:IV1")
If c = "1" Then
On Error GoTo fehler
c.Offset(1, 0).PasteSpecial xlPasteValues
Sheets(1).Select
Exit Sub
End If
Next c

fehler:
MsgBox ("Der Bereich kann nicht eingefügt werden")

End Sub

Mein Problem: ich möchte, dass die kopierte Spalte aus Tabelle1 als Spalte in Tabelle 2 vor dem Kriterium ("1") eingefügt wird.
D. h. steht der Wert "1" in der Zelle B1 und in der Spalte A stehen Werte, so sollen die Werte der Spalte B in die Spalte C verschoben werden. Die Werte des Bereichs aus der Tabelle 1 sollen dann in der Spalte B stehen.
Kann mir vielleicht jemand weiterhelfen und erklären, wie ich das Makro ergänzen muss, damit dies möglich ist?
Vielen Dank
Felix

2 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Felix,

ich hoffe, ich habe dich richtig verstanden. Versuch es mal so:

Sub kopieren()

For Each c In Sheets(2).Range("A1:IV1")
If c = "1" Then
On Error GoTo fehler
c.Offset(0, 0).EntireColumn.Insert 'Spalte einfügen
Sheets(1).Range("A1:A10").Copy
c.Offset(1, -1).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False 'Auswahl aufheben

Sheets(1).Select
Exit Sub
End If
Next c

fehler:
MsgBox ("Der Bereich kann nicht eingefügt werden")

End Sub


Gruß

M.O.
0 Punkte
Beantwortet von felixso Einsteiger_in (79 Punkte)
Vielen Dank für die Hilfe!
Es funktioniert so wie gewünscht.
...