Kopieren einzelner Spalten in einzelne Blätter

Bild

Betrifft: Kopieren einzelner Spalten in einzelne Blätter
von: Jörg
Geschrieben am: 24.11.2003 09:45:23

Hallo Leute!

Ich weiss wie ich eine gesamte Tabelle in eine andere überführen kann. Mir geht es aber noch darum immer nur eine Spalte in eine Tabelle zu überführen, also Spalte 1 in eine Tabelle, Spalte 2 in ein eigenes Blatt usw.
Spaltenweise kopieren scheint zu funktionieren, aber nicht eine Spalte in eine Tabelle.
Falls ihr für dieses Problem einen Tipp hättet, wäre ich sehr verbunden wenn ihr ihn mir geben würdet.

Viele Grüsse
Jörg.

Bild


Betrifft: AW: Kopieren einzelner Spalten in einzelne Blätter
von: Mac4
Geschrieben am: 24.11.2003 10:38:19

Hallo Jörg,

aus der Beschreibung des Problems ist mir nicht alles klar geworden. Hier mal ein Schuß ins Blaue.
Folgendes Makro ermittet die Anzahl der genutzten Spalten (Basis ist Zeile 1) und kopiert anschließend jede Spalte einzeln in ein neues Tabellenblatt.
Vieleicht wars das ja schon.


Sub test()
Dim zl As Long
For i = 1 To Cells(1, Columns.Count).End(xlToLeft).Column
zl = Cells(Rows.Count, i).End(xlUp).Row
Range(Cells(1, i), Cells(zl, i)).Copy
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Paste
Next
End Sub



Bild


Betrifft: AW: Kopieren einzelner Spalten in einzelne Blätter
von: Jörg
Geschrieben am: 26.11.2003 08:48:28

Vielen Dank Mac4!
Dein Code hat mir sehr geholfen. Es bleibt nur noch ein kleines Problem zu lösen, nämlich das nur solange Spalten kopiert werden solange auch die erste Zeile gefüllt ist. Es kann aber sein, dass in der ersten Zeile nichts steht, aber in späteren und diese müssen auch kopiert werden.
Wenn du oder jemand anders eine Lösung hättet wäre ich dankbar sie zu hören.
Danke,
Jörg!


Bild


Betrifft: AW: Kopieren einzelner Spalten in einzelne Blätter
von: Mac4
Geschrieben am: 27.11.2003 10:23:58

Hallo Jörg,

probiers es mal hiermit, wobei der UsedRange-Befehl etwas fehleranfällig ist, deshalb wird i.d.R. die Lösung "Cells(1, Columns.Count).End(xlToLeft).Column" genommen (hierfür muss aber die Zeile mit der grössten Anzahl bekannt sein).


Sub test()
Dim zl As Long
For i = 1 To UsedRange.Columns.Count
zl = Cells(Rows.Count, i).End(xlUp).Row
Range(Cells(1, i), Cells(zl, i)).Copy
Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Paste
Next
End Sub


Marc


Bild


Betrifft: AW: Kopieren einzelner Spalten in einzelne Blätter
von: Jörg
Geschrieben am: 27.11.2003 11:40:20

Hallo Mac4!
Vielen Dank für deine Antwort und deine Mühen.
Die von dir beschriebene Lösung ist mir nach langem Nachdenken auch
gekommen. Ich kann dir sagen, da war ich doch etwas begeistert.
Danke nochmals für deine Tipps!
Gruss,
Jörg!


Bild

Beiträge aus den Excel-Beispielen zum Thema " Kopieren einzelner Spalten in einzelne Blätter"