Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.04.2024 18:57:33
17.04.2024 16:56:58
Anzeige
Archiv - Navigation
1448to1452
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Spalte mehrfach untereinander kopieren

Spalte mehrfach untereinander kopieren
09.10.2015 12:06:46
Edgard
Hallo habe ein kleines Verständnisproblem mit der for-Schleife bei VBA.
Ich möchte aus einer Tabelle eine bestimmte Spalte 3x untereinander in ein anderes Tabellenblatt einfügen, um sie nachher in einer Pivot nutzen zu könenn. Dabei will ich Änderungen laufend übernommen haben. ( Sonst könnte ich das ganze auch manuell machen, soll aber automatisch gehen).
Hier der Code:

Sub kopieren()
Dim wks1 As Worksheet, wks2 As Worksheet
Dim lastCell As Long
Dim i As Long
Set wks1 = Worksheets("Tabelle3")
Set wks2 = Worksheets("Priority List")
With wks2
For i = 1 To 3
lastCell = .Range("B65536").End(xlUp).Row
.Range(.Cells(3, 2), .Cells(lastCell, 2)).Copy _
Destination:=wks1.Range("A2").End(xlUp).Offset(i, 0)
Next i
End With
Set wks1 = Nothing
Set wks2 = Nothing
End Sub

Bin VBA-Anfänger, weshalb der Code auch aus verschiedenen Recherchen hier zusammenkopiert ist. Die Liste wird mir momentan genau 1x kopiert und Änderungen auch aktualisiert, wie gewünscht. Lediglich mit der for-Schleife komme ich nicht weiter.

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalte mehrfach untereinander kopieren
09.10.2015 12:20:44
Daniel
Hi
überleg mal, Range("A2").End(xlUp) führt immer zur Zelle A1!
wenn du einen Zellbereich 3x hintereinander kopieren willst, dann kann man das in Excel so machen, dass man als Einfügebereich nicht die obere linke Zelle angibt, sondern den ganzen, entsprechend vergrössterten Einfügebereich, dann weiss Excel, das es die kopierten Zellen wiederholt eintragen soll:

Sub kopieren()
Dim wks1 As Worksheet, wks2 As Worksheet
Dim lastCell As Long
Set wks1 = Worksheets("Tabelle3")
Set wks2 = Worksheets("Priority List")
With wks2
lastCell = .Range("B65536").End(xlUp).Row
With .Range(.Cells(3, 2), .Cells(lastCell, 2))
.Copy Destination:=wks1.Range("A2").Resize(.Rows.count * 3, .columns.count)
end with
End With
Set wks1 = Nothing
Set wks2 = Nothing
End Sub
Gruß Daniel

Anzeige
AW: Spalte mehrfach untereinander kopieren
09.10.2015 12:46:38
Edgard
Vielen, vielen Dank!
Macht genau was ich will. Wenn ich eine Zeile hinzufüge in der Quelldatei, fügt er sie am Ziel 3x ein. Die Liste bleibt aktuell. Leider funktioniert es nicht einwandfrei, wenn ich die letzte angefügte Zeile wieder entferne. Die ersten beiden Male funktioniert es, beim 3. Mal, also am Ende, bleibt der Eintrag jedoch bestehen. Ich weiß nicht, inwiefern, dass für den Anwendungsfall hier relevant werden wird. Wäre aber sauberer, wenn die Zieltabelle, wirklich immer genau 3x den Inhalt der Quelltabelle hat und nicht mehr. Ich vermute mal, dass sobald die letzte Zeile in der Quelltabelle gelöscht wird, er zwar arbeitet, aber die allerletzte Zeile in der Zieltabelle nicht geändert wird, da sie nicht mehr in der Range liegt und daher unberührt bleibt. Liega ich da richtig? kann man das ohne weiteres beheben? Wenn nicht ist erstmal nicht so wild. Das Kernproblem ist ja erstmal gelößt :) DANKE !!!

Anzeige
AW: Spalte mehrfach untereinander kopieren
09.10.2015 12:50:45
Daniel
Hi
einfach vor dem Kopieren in der Zieldatei den bestehenden Inhalt löschen.
Gruß Daniel

AW: Spalte mehrfach untereinander kopieren
09.10.2015 12:57:21
Edgard
ok, gut, das geht natürlich^^ Kann ich auch so in den befehl schreiben. Mal gucken, ob alles reibungslos läuft mit der pivot dann.

AW: Spalte mehrfach untereinander kopieren
09.10.2015 13:58:53
Edgard
so anscheinend bin ich die ganze sache wohl doch falsch angegangen, daher nochmal eine beschreibung was ich eigentlich will:
ich will eine Tabelle neu aufziehen aus einer anderen, damit die Pivot-Tabelle anders arbeitet.
Ich habe die Spalten A B C D E F G H I
die Spalten BCD beinhalten verschiedene Produkte die kategorisiert sind und EFG die jeweiligen Preise
Jetzt können beispielsweise Produkte sowohl in der Kategorie C als auch D sein. Mir ist für die Pivot Tabelle aber egal in welcher Kategorie die Produkte sind , ich will lediglich die Preise vergleichen.
Daher wollte ich die Tabelle jetzt neu strukturieren und zwar so:
A B E H I
A C F H I
A D G H I
Für die Spalte mit A,H, und I habe ich ja jetzt zumindest einen Ansatz.
Jetzt möchte ich 1. die Spalten BCDEFG so anordnen wie oben angezeigt und 2. , wenn ich in der Originaltabelle in A zb eine Zeile hinzufüge, in der Zieltabelle auch für alle anderen eine Leerzeile entsteht. Habe ich etwas wesentliches in Pivot übersehen? Weil ich finde meinen Ansatz hier sehr, sehr kompliziert, nur habe ich leier keine andere Idee.
In Pivot war ich bisher soweit gekommen:
. B C D
A E F G
A E F G
A E F G also so sah die erzeugte Tabelle aus. A die Zeilen und BCD die Spalten. Jetzt bestehen zwischen B, C und D ja UND-Verknüpfungen, die will ich aber gar nicht. Hoffe man kann so ungefähr mein Dilemma verstehen und was ich eigentlich will.

Anzeige
AW: Spalte mehrfach untereinander kopieren
13.10.2015 01:15:29
Daniel
Hi
ok, das sind jetzt ganz neue Aspekte in der Aufgabenstellung.
probier mal folgenden Code:
Sub test()
Dim wks1 As Worksheet, wks2 As Worksheet
Dim i As Long
Dim Anzahl As Long
Set wks1 = sheets("Tabelle2")
Set wks2 = sheets("Priority List")
Anzahl = wks1.Cells(Rows.Count, 1).End(xlUp).Row - 1
wks1.Cells(2, 1).Resize(Anzahl).Copy wks2.Cells(2, 1).Resize(Anzahl * 3)
wks1.Cells(2, 8).Resize(Anzahl, 2).Copy wks2.Cells(2, 4).Resize(Anzahl * 3, 2)
For i = 0 To 2
wks1.Cells(2, 2 + i).Resize(Anzahl, 1).Copy wks2.Cells(2, 2).Offset(Anzahl * i)
wks1.Cells(2, 5 + i).Resize(Anzahl, 1).Copy wks2.Cells(2, 3).Offset(Anzahl * i)
Next
End Sub

Gruss Daniel

Anzeige
AW: Spalte mehrfach untereinander kopieren
12.10.2015 08:39:17
Edgard
Kann mir keener helfen, sei es nur n Anstoß ?

43 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige