Zellen von anderer Tabellen kopieren mit Excel VBA
In diesem Tutorial zeige ich Euch wie Ihr Zellen von anderen Arbeitsmappen und Tabellen kopieren könnt. Dabei gibt es nicht nur die Möglichkeit die ganze Zelle zu kopieren sondern auch nur die Werte oder Formate.
Das Startvideo der VBA Tutorial Serie auf YouTube findet Ihr hier
Die Playlist meiner VBA Tutorial Serie auf YouTube findet Ihr hier
Achtung:
Benutzt zum Üben eine separate Tabelle für Testzwecke oder eine Kopie des Originals damit Euch keine Daten verloren gehen.
Video zu diesem Tutorial:
Einfaches Kopieren von Zellen in Excel VBA
Die einfachste Art eine Zelle zu kopieren ist mit Copy. In dem folgenden Beispiel wird bei der aktiven Tabelle die Zelle A1 kopiert und dann in C1 eingefügt.
Sub ZelleVonTabelleKopierenTutorial() Range("A1").Copy Range("C1") End Sub
Kopieren einer Zelle mit Angabe der Arbeitsmappe und Tabelle
Beim obigen Beispiel ist das Problem dass immer die aktive Tabelle benutzt wird. Manchmal möchte man aber eine ganz bestimmte Arbeitsmappe und Tabelle ansprechen. Im folgenden Beispiel werden wir die Arbeitsmappe und Tabelle festlegen.
Achtet darauf dass Eure Arbeitsmappen auch den Namen Mappe1 und Mappe2 haben. Ansonsten müsst Ihr das im Script ändern.
Mappe1 hat von Zelle A1 bis A10 Einträge mit farbigen Hintergrund.
Sub DatenVonTabelleKopierenTutorial() Workbooks("Mappe1").Worksheets("Tabelle1").Range("A1:A10").Copy _ Workbooks("Mappe2").Worksheets("Tabelle1").Range("B1") End Sub
Nur Werte oder Formate der Zellen kopieren
Das Coole ist, dass es natürlich möglich ist nicht nur komplette Zellen zu kopieren, sondern auch nur Werte oder die Formate. Dafür gibt es extra PasteSpecial. Die Möglichkeiten was da genau kopiert werden kann könnt Ihr hier finden: XLPasteTypes.
In diesem Beispiel kopiere ich die Werte und die Formate separat.
Ich habe zusätzlich noch die Markierung deaktiviert die immer entsteht wenn man Zellen kopiert. Das geht mit Application.CutCopyMode = False.
Außerdem habe ich dann noch über AutoFit und Angabe der Spalte A mit Columns(1), eine optimale Spaltenbreite hinzugefügt.
Sub DatenVonTabelleKopierenTutorial() Workbooks("Mappe1").Worksheets("Tabelle1").Range("A1:A10").Copy Workbooks("Mappe2").Worksheets("Tabelle3").Range("A11").PasteSpecial (xlPasteValues) Workbooks("Mappe2").Worksheets("Tabelle3").Range("B11").PasteSpecial (xlPasteFormats) Application.CutCopyMode = False Workbooks("Mappe2").Worksheets("Tabelle3").Columns(1).AutoFit End Sub
Das könnte Dich auch interessieren
- Arbeitsmappe erstellen und speichern in Excel VBA
- Auf Zellen zugreifen mit Range in Excel VBA
- Cells und Range kombiniert in Excel VBA
- Do Loop Schleife in Excel VBA
- Eine eigene Funktion erstellen ganz einfach (Excel)
- Entwicklertools anzeigen (Microsoft Excel)
- Excel VBA Module schneller hinzufügen
- Gefüllte Zellen markieren mit und ohne Lücken in Excel VBA