Excel VBA – Spalten in eine andere Tabelle kopieren

Excel VBA – Spalten in eine andere Tabelle kopieren
4.7 Sterne
6 Bewertungen

Dieser Beitrag ist ein Teil der VBA Grundlagen Serie.

In diesem How-To zeige ich wie Sie bestimmte Spalten in eine andere Tabelle kopieren können. In unserer Ausgangstabelle sind Umsatz und Menge pro Jahr ausgewiesen. Wir wollen in einer anderen Tabelle nur die Umsätze sehen.

111 VBA Makros die Ihr Leben leichter machen. Egal ob Sie Einsteiger oder fortgeschrittener Anwender sind – in diesem Buch finden Sie Lösungen für Ihre alltäglichen Aufgaben. Keine Vorkenntnisse notwendig.

Spalten über VBA kopieren

Dazu schreiben wir ein Makro.
Definieren Sie zunächst eine Variable für die Spalten in Ihrer Quelletabelle und eine für die Zieltabelle. Nun initialisieren wir über die Methode ClearContents die Zieltabelle. Sollte diese Daten enthalten, werden diese nun gelöscht. Geben Sie im nächsten Schritt an, aus welcher Tabelle die Daten kommen.

Sub SpaltenKopieren()
Dim Spalte As Integer
Dim ZielSpalte As Integer

Sheet2.UsedRange.ClearContents
With Sheet1

End With
End Sub

Unternehmensplanung mit SAP BPC

111 VBA Makros die Ihr Leben leichter machen

Wollen Sie Ihre langweiligen Routineaufgaben loswerden? Möchten Sie Excel an Ihre Bedürfnisse anpassen, Berechnungen automatisieren, eigene Dialogfelder erstellen und vieles mehr? Dieses Buch zeigt Ihnen, wie Sie Ihre Aufgaben schnell und einfach mit VBA erledigen.

Als Nächstes setzen wir eine Schleife auf, die von der ersten bis zur letzten Spalte im verwendeten Bereich alle Spalten durchläuft. Wenn in der zweiten Zeile der jeweiligen Spalte der Wert „Umsatz“ steht, wird diese Spalte in die zweite Tabelle kopiert. Als Ziel definieren wir zunächst die erste Spalte. Nach dem erfolgten Kopiervorgang erhöhen wir die Variable für die Zielspalte um 1. Beim nächsten Durchlauf werden die Werte in die zweite Spalte kopiert und so weiter.

Sub SpaltenKopieren()
Dim Spalte As Integer
Dim ZielSpalte As Integer

Sheet2.UsedRange.ClearContents
With Sheet1

ZielSpalte = 1
For Spalte = 1 To .UsedRange.Columns.Count

If .Cells(2, Spalte).Value = "Umsatz" Then
.Columns(Spalte).Copy Destination:=Sheet2.Columns(ZielSpalte)
ZielSpalte = ZielSpalte + 1
End If

Next Spalte
End With
End Sub

Die Beispiel Excel Datei mit dem sofort einsetzbaren Makro und 111+ andere Makros, die Ihr Leben leichter machen, finden Sie hier.

Beeindrucke deinen Chef mit coolen Excel Tricks!

  • Lasse dich von deinen Kollegen nicht abhängen!
  • Spare Zeit und nutze diese für angenehmere Dinge
  • Steigere deine Produktivität und Effizienz
  • Es ist leicht - In meinem Newsletter gebe ich Schritt für Schritt Anleitungen die jeder versteht
  • Bei der Anmeldung zu meinem Newsletter erhälst du das Buch „Excel Tricks die deinen Chef beeindrucken“ als Willkommensgeschenk.
20 Excel Tricks

Jetzt anfordern!

* Pflichtfeld
 
Kein SPAM. 100% sicher.

Quellen und weiterführende Literatur:
Bernd Held – VBA mit Excel: Das umfassende Handbuch

Falls Ihnen dieser Beitrag weitergeholfen hat, wäre es eine sehr nette Anerkennung meiner Arbeit wenn Sie z.B. Ihre Bücher über Amazon bestellen würden. Wenn Sie ein Produkt kaufen, erhalte ich dafür eine Provision. Für Sie ändert sich am Preis des Produktes gar nichts. Ich möchte mich an dieser Stelle jetzt schon für Ihre Unterstützung bedanken.

Denis Reis ist Business Intelligence Consultant und gibt als Buchautor sein Wissen rund um den SAP Projektalltag weiter. Wenn Sie tatkräftige Unterstützung bei Ihren SAP BI Projekten benötigen, können Sie ihn über Xing, LinkedIn oder Facebook kontaktieren.
Des Weiteren unterrichtet er Projektmanagement und Controlling an der Wiesbaden Business School. Der aus Düsseldorf stammende Familienmensch zählt zu denjenigen, die auf komplizierte Darstellungen verzichten und das Ganze auf den Punkt bringen.

2 Kommentare
  1. Florian
    Florian says:

    Guten Tag,

    vielen Dank für dieses How-To.

    Eine Frage hätte ich aber noch: Wie kann ich die Spalte ab einer bestimmten Zeile kopieren und nicht ab der ersten?

    Grß

    Antworten

Dein Kommentar

Want to join the discussion?
Feel free to contribute!

Kommentar verfassen