Uff. Deine Beschreibung ist verwirrend geschrieben.
ich würde gerne einen bestehenden Code ausbauen. Der bisherige kopiert den Wert aus Spalte A1 in die Spalte 20 und fügt darüber eine neue Spalte ein.
Spalten (Columns) sind in Excel - in der A1-Schreibweise - in Buchstaben angegeben - z.B. Spalte A, Spalte AA, Spalte EFA, usw.
Zeilen (Rows) sind in Excel - in der A1-Schreibweise - als Ganze Zahlen angegeben (beginned bei 1) - z.B. 1, 5, 100, usw.
Zellen (Cells) sind in Excel - in der A1-Schreibweise - als eine Kombination aus Spalte und Zeile angegeben - z.B: A1, AA5, EFA100, usw.
Ein Bereich (Range) in Excel - in der A1-Schreibweise - ist eine Angabe aus zwei Zellen - z.B. A1:C3 (das sind die Zellen A1, A2, A3; B1, B2, B3; C1, C2, C3)
Man kann sich auch auf ganze Spalte beziehen - z.B. Spalte A bis C wäre als Bereich A:C (analog dazu Zeilen; z.B. Zeile 1 bis 3 wäre 1:3 )
Es ist nun üblich, sich nicht auf eine gesamte Spalte zu beziehen (weil das verdammt viele Zellen sind, ca. über eine Millionen Zellen je Spalte). Darum beschränkt man sich auf die Zellen die auch einen Inhalt haben, und diesen Bereich ermittelt man z.B. so:
Option Explicit
Sub test()
Dim Bereich As Range
With Worksheets("Tabelle1")
'in Spalte A, such von unten-nach-oben nach erster Zelle mit Inhalt
' A2 und die gefundene Zelle bilden den Bereich
Set Bereich = .Range("A2", .Cells(.Rows.Count, "A").End(xlUp))
'wenn z.B. keine Daten in der Spalte A stehen,
' kann es passieren, das wir oberhalb von A2 landen
If Bereich.Row < 2 Then
'... landen wir über A2 (Zeilen-Index ist kleiner 2)
' dann verlassen wir hier die Prozedur (=Sub)
Exit Sub
End If
End With
Dim Zelle As Range
For Each Zelle In Bereich.Cells
'als Beispiel, geben wir hier
' die Adresse jeder Zelle im Bereich
' im Direktfenster (gf. einblenden mit STRG+G) aus
' und dessen Wert / Inhalt
Debug.Print Zelle.Address, Zelle.Value
Next
End Sub
Nun schau dir bitte noch mal an was bei dir im Makro genau macht wird.
Mit den obigen Erklärungen, solltest du in der Lage sein dein Makro aufzubarbeiten / korrigieren zu können.
BG
|