Spalten von einem ins nächste Tabellenblatt kopieren

  • Excel

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von FloFuchs.

    Spalten von einem ins nächste Tabellenblatt kopieren

    Der Neuling mal wieder

    Folgende Situation: Ich möchte Spalten, die im ersten Tabellenblatt (SRTM30) nebeneinander liegen in ein zweites Tabellenblatt (SRTM30_S) untereinander kopieren.
    Das Problem: Die Spalten sind nicht immer gleich lang (+-3 Zeilen)
    Daher meine Überlegung: Eine Range im ersten Tabellenblatt vorgeben, darin aktive Zellen suchen, markieren und kopieren. Dann das in das zweite Tabellenblatt wechseln, letzte freie Zeile suchen, auswählen und einfügen.
    Ziel: Das Ganze mit ca. 1300 Spalten. Probehalber habe ich zunächst nur 100 angewählt
    Advanced: Eigtl. sind es immer Spaltenpaare, die durch jeweils 2 Spalten getrennt von einander sind.
    Aufbau in Tabellenblatt 1: x a b y e x a b y
    das soll im Tabellenblatt 2 dann zu x y werden wobei die Werte der x-Spalten und y-Spalten dann jeweils untereinander geschrieben werden sollen.

    Mein Quellcode startet aber leider noch nicht mal:

    Quellcode

    1. Sub KopierenS()
    2. x = 2
    3. y = 5
    4. For x = 2 To 100
    5. Worksheets("SRTM30").Range(Cells(7, x), Cells(30, x)).Select
    6. suchwert = ""
    7. For Each Suchzellen In Sellection
    8. If Suchzellen.Value <> suchwert Then
    9. i = 1
    10. z_index = Suchzellen.Row
    11. s_index = Suchellen.Column
    12. For Each Zelle In Range("C2:C100")
    13. If Zelle.Value <> suchwert Then
    14. d = 1
    15. r_index = Suchzellen.Row
    16. End If
    17. Next
    18. Cells(z_index, s_index).Copy Destination:=Worksheets("SRTM30_S").Cells(r_index, 3)
    19. End If
    20. Next
    21. x = x + 4
    22. y = y + 4
    23. Next
    24. End Sub



    Ich danke euch für eure Hilfe!

    Sascha

    FloFuchs schrieb:

    Zitat von »Sascher«



    darin aktive Zellen suchen

    FloFuchs schrieb:

    Was meinst du damit?


    Nun, da die Spalten nicht immer gleich lang sind, dachte ich, ich wähle provisorisch immer beispielsweise B7-B30 aus und such darin dann nach Zellen, die einen Wert beeinhalten/nicht leer sind, um diese dann zu kopieren.

    Dein zielt auf die Anzahl hin, richtig? Das war auch meine Überlegung nicht nach leeren Zellen zu suchen, sondern die zuvor kopierte Anzahl x zu berücksichtigen und dann zu sagen Spalte O+x..... Allerdings dachte ich mir das Suchen würde eine einfachere Alternative darstellen
    Nunja, einfacher ist relativ...
    Erst alles durchsuchen un dann kopieren, is auf jeden fall langsamer. Die Frage ist, wieviele Zeilen pro Spalte normalerweise vor kommen.
    3 Abschnitte einfach in ein neues Blatt kopieren und danach mit der Excel Sortierfunktion alle leeren raus werfen is sicher schneller.
    ok, ja, hast Recht - das ist ein guter Vorschlag.

    Demnach habe ich jetzt folgendes geschrieben:

    Quellcode

    1. Sub CopyS()
    2. x = 2
    3. y = 5
    4. u = 3
    5. v = 3
    6. For x = 2 To 100
    7. Worksheets("SRTM30").Range(Cells(7, x), Cells(28, x)).Select
    8. Selection.Copy
    9. Worksheets("SRTM30_S").Select
    10. Cells(u, 3).PasteSpecial xlPasteValues
    11. Application.CutCopyMode = False
    12. u = u + 21
    13. Worksheets("SRTM30").Range(Cells(7, y), Cells(28, y)).Select
    14. Selection.Copy
    15. Worksheets("SRTM30_S").Select
    16. Cells(v, 4).PasteSpecial xlPasteValues
    17. Application.CutCopyMode = False
    18. v = v + 21
    19. Next
    20. End Sub


    schmeißt mir trotzdem nen Fehler aus. In der Zeile "Worksheets("SRTM30").Range(Cells(7, x), Cells(28, x)).Select" scheint was nicht richtig zu sein :-/

    hmpf

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Sascher“ ()