1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

EXCEL: Ausgewählte Spalten einer Tabelle in eine andere Tabelle kopieren

Discussion in 'Office-Programme' started by yorck, Nov 14, 2009.

Thread Status:
Not open for further replies.
  1. yorck

    yorck Byte

    Hallo!

    Ich bekomme täglich Daten in einer Tabelle geliefert, von denen ich für eine spezielle Aufgabe nur genau 2 (leider nicht zusammenhängende) Spalten brauche. Die "Urtabelle" darf nicht verändert werden. Deshalb möchte ich die Spalten K und U kopieren und als A und B in einer neuen Tabelle (innerhalb der gleichen Arbeitsmappe) verwenden.

    Gibt es ein einfaches Makro dafür?

    Dank im Voraus
    Yorck
     
  2. yorck

    yorck Byte

    Ich hab´s jetzt:

    Sub SpaltenKopieren()

    Sheets("quelle").Columns("K:K").Copy
    Sheets("ziel").Paste Destination:=Sheets(Worksheets.Count).Columns("A:A")
    Sheets("quelle").Columns("U:U").Copy
    Sheets("ziel").Paste Destination:=Sheets(Worksheets.Count).Columns("B:B")

    Application.CutCopyMode = False
    End Sub

    Einfach und funktioniert. Trotzdem freue ich mich über Anregungen und Verbesserungsvorschläge.

    Gruß
    Yorck
     
  3. Urs2

    Urs2 Megabyte

    Hallo Yorck.

    Das Makro kann es auch mit nur 2 Befehls-Zeilen >>>

    Sub Spaltenkopieren()
    Sheets("ziel").Columns("A").Value = Sheets("quelle").Columns("K").Value
    Sheets("ziel").Columns("B").Value = Sheets("quelle").Columns("U").Value
    End Sub

    Aber warum ein Makro, anstatt direkt in den Zellen? Im Blatt "ziel", in den Zellen A1 und B1 >>>

    =quelle!K1
    =quelle!U1
    ...und dann beides runterkopieren...

    Wenn für leere Zellen in "quelle" keine Nullen in "ziel" erscheinen sollen, dann so schreiben >>>

    =WENN(quelle!K1="";"";quelle!K1)

    Gruss Urs
     
  4. yorck

    yorck Byte

    Hallo Urs,

    vielen Dank, das funktioniert fast perfekt.

    Ein Makro deshalb, weil ich die Daten der "quelle" vorher mit dem Autofilter etwas ausdünnen möchte. Es werden nicht alle Zeilen benötigt und so "ziel" immer wieder neu erstellt. (Hintergrund ist die Analyse einer bestimmten Gruppe von Datensätzen.) Bei der vorliegenden Lösung werden die beiden Spalten 1:1 übernommen, also alle Datensätze.

    Gibt es eine Möglichkeit, dass der in der "quelle" gesetzte Autofilter nicht ignoriert wird und nur die benötigten Datensätze der beiden Spalten nach "ziel" übertragen werden?

    Gruss
    Yorck
     
  5. Urs2

    Urs2 Megabyte

    ...man sollte schon vorher erwähnen, dass da ein Autofilter drin steckt...

    Nimm das was Du im Prinzip vorher schon hattest >

    Sub SpaltenKopieren()
    Sheets("quelle").Columns("K").Copy Destination:=Sheets(Worksheets.Count).Columns("A")
    Sheets("quelle").Columns("U").Copy Destination:=Sheets("ziel").Columns("B")
    End Sub

    Die obere Zeile kopiert ins Blatt rechts aussen,
    die untere ins Blatt "ziel"

    Gruss Urs
     
  6. yorck

    yorck Byte

    ... das mit dem Autofilter war mir nicht bewußt. Sorry.

    Yorck
     
Thread Status:
Not open for further replies.

Share This Page