Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Makro zum Kopieren in ein anderes Tabellenblatt

Makro zum Kopieren in ein anderes Tabellenblatt
12.12.2005 23:30:22
Flo
Makro zum Kopieren von einem Tabellenblatt in ein anderes
Hallo, eine Frage an alle VBA-Kenner,
ich habe mit dem Makrorekorder eine Makro aufgezeichnet, mit dem ich Wert von einer Tabelle in eine Andere kopieren will. Eigentlich nicht schwer, aber es funktioniert nicht.
Das Makro schaut folgendermassen aus: (ist in einer englischen EXCEL-Version erstellt worden)
Range("L37:N41").Select
Selection.Copy
Sheets("Compare").Select
Range("B2").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("B2").Select
Sheets("Calculate").Select
Range("L42").Select
Application.CutCopyMode = False
Wenn ich es starte steigt er mir immer in der 4. Zeile aus. Kann es daran liegen, dass sich die Zelle auf einem anderen Blatt befindet?
Was kann ich aendern, damit es laeft?
Vielen Dank!
Flo
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro zum Kopieren in ein anderes Tabellenblatt
12.12.2005 23:49:10
HansH
Hallo Flo,
funktioniert bei mir etwas gekürzt einwandfrei.

Sub kopieren()
Range("L37:N41").Copy 'markiert und Kopiert die angegebenen Zellen
Sheets("Compare").Select 'wechselt ins angegebene Tabellenblatt
Range("B2").PasteSpecial 'fügt die kopierten Werte ein
Sheets("Calculate").Select 'wechselt ins angegebene Tabellenblatt
Range("L42").Select 'markiert angegebene Zelle
End Sub

Hast Du die Tabellen entsprechend benannt?
Gruß
Hans
Anzeige
AW: Makro zum Kopieren in ein anderes Tabellenblatt
13.12.2005 00:16:00
Flo
Hallo!
Ich hab zwar keine Ahnung woran es lag, aber jetzt klappst!
Vielen Dank fuer die schnelle Antwort!
Flo
Und so ohne Select!
13.12.2005 00:06:56
Josef
Hallo Flo!
Das Selectieren gewöhnst du dir am besten gleuch wieder ab;-))

Sub kopieren()
Sheets("Calculate").Range("L37:N41").Copy
Sheets("Compare").Range("B2").PasteSpecial xlPasteValues
Application.CutCopyMode = False
End Sub

'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: Und so ohne Select!
13.12.2005 00:14:59
Flo
Super! Klappt!
Danke fuer die schnelle Antwort!
Flo
AW: Thanks for the feedbacks o.T.
13.12.2005 00:19:51
HansH
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Makro zum Kopieren in ein anderes Tabellenblatt


Schritt-für-Schritt-Anleitung

Um ein Makro in Excel zu erstellen, das Daten von einem Tabellenblatt in ein anderes kopiert, kannst Du die folgenden Schritte befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Neues Modul erstellen: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" im Projektfenster, wähle "Einfügen" und dann "Modul".

  3. Makro eingeben: Füge den folgenden Code in das Modul ein:

    Sub kopieren()
       Sheets("Calculate").Range("L37:N41").Copy
       Sheets("Compare").Range("B2").PasteSpecial xlPasteValues
       Application.CutCopyMode = False
    End Sub
  4. Makro ausführen: Schließe den VBA-Editor und gehe zurück zu Excel. Drücke ALT + F8, wähle das Makro "kopieren" aus und klicke auf "Ausführen".

Dieses Makro kopiert die Werte aus dem Bereich L37:N41 im Tabellenblatt "Calculate" und fügt sie in das Tabellenblatt "Compare" ab Zelle B2 ein.


Häufige Fehler und Lösungen

  • Fehler: Das Makro gibt einen Fehler aus, weil die Zelle auf einem anderen Blatt ist.

    • Lösung: Stelle sicher, dass die Blattnamen korrekt sind und das Makro die richtige Reihenfolge von Blättern verwendet.
  • Fehler: Es werden keine Werte eingefügt.

    • Lösung: Überprüfe, ob die Daten im Quellbereich korrekt sind und das Makro die Werte mit PasteSpecial als xlPasteValues einfügt.

Alternative Methoden

Es gibt auch andere Möglichkeiten, Daten zwischen Tabellenblättern zu kopieren. Hier sind zwei alternative Ansätze:

  1. Direktes Auslesen ohne Kopieren: Du kannst die Werte direkt auslesen und setzen, ohne das Clipboard zu verwenden:

    Sub copyValues()
       Dim wsSource As Worksheet
       Dim wsDest As Worksheet
       Set wsSource = ThisWorkbook.Sheets("Calculate")
       Set wsDest = ThisWorkbook.Sheets("Compare")
    
       wsDest.Range("B2").Resize(5, 3).Value = wsSource.Range("L37:N41").Value
    End Sub
  2. Automatisches Übertragen von Daten: Verwende Formeln oder Datenverknüpfungen, um Daten automatisch zu übernehmen. Zum Beispiel:

    • In Zelle B2 des Blattes "Compare" könntest Du ='Calculate'!L37 eingeben, um den Wert von "Calculate" zu übernehmen.

Praktische Beispiele

Hier sind einige praktische Beispiele für die Verwendung von Makros zum Kopieren von Daten:

  • Kopieren einer gesamten Spalte: Um eine gesamte Spalte von einem Blatt zu einem anderen zu kopieren, kannst Du folgendes Makro verwenden:

    Sub spalteKopieren()
       Sheets("Calculate").Columns("L").Copy
       Sheets("Compare").Columns("A").PasteSpecial xlPasteValues
    End Sub
  • Kopieren einer bestimmten Zeile: Um eine bestimmte Zeile zu kopieren, kannst Du diesen Code verwenden:

    Sub zeileKopieren()
       Sheets("Calculate").Rows(37).Copy
       Sheets("Compare").Rows(1).PasteSpecial xlPasteValues
    End Sub

Tipps für Profis

  • Vermeide SELECT: Versuche, die Verwendung von Select und Selection zu minimieren, um den Code effizienter zu gestalten.

  • Fehlerbehandlung hinzufügen: Implementiere Fehlerbehandlungsroutinen, um unerwartete Fehler während der Ausführung zu vermeiden.

  • Dokumentation: Kommentiere Deinen Code gründlich, um die Lesbarkeit zu verbessern und das Verständnis zu erleichtern.


FAQ: Häufige Fragen

1. Kann ich ein Makro so einstellen, dass es automatisch ausgeführt wird? Ja, Du kannst ein Makro so programmieren, dass es bei bestimmten Ereignissen, wie dem Öffnen der Datei oder dem Ändern von Zellen, automatisch ausgeführt wird.

2. Ist es möglich, mehrere Bereiche gleichzeitig zu kopieren? Ja, Du kannst mehrere Bereiche kopieren, indem Du diese nacheinander in einer Schleife durchgehst oder indem Du die Bereiche in einem Array speicherst und dann kopierst.

3. Was ist der Unterschied zwischen Copy und PasteSpecial? Copy kopiert sowohl Werte als auch Formate, während PasteSpecial es Dir ermöglicht, nur bestimmte Aspekte, wie Werte oder Formate, einzufügen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige