Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Range in anderes Sheet Kopieren

Forumthread: Range in anderes Sheet Kopieren

Range in anderes Sheet Kopieren
08.08.2018 16:20:35
Andreas
Hallo Liebe Excel Freunde
Ich will eine Range von einem Tabellenblatt in ein anderen kopieren, kann mir jemand helfen und sagen warum in der ersten Zeile die Fehlermeldung:
Laufzeitfehler '1004'
Anwendung- oder objektdefinierter Fehler
bekomme
: (i=66)
Sheets("Lieferantenliste").Range(Cells(7, 2), Cells(i, 12)).Copy
Sheets("Q-Fähigkeit").Range(Cells(7, 1), Cells(i, 11)).Paste
Vielen Dank
Lg Andreas
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Range in anderes Sheet Kopieren
08.08.2018 16:27:53
Werner
Hallo Andreas,
so:
With Worksheets("Lieferantenliste")
.Range(.Cells(7, 2), .Cells(i, 12)).Copy Worksheets("Q-Fähigkeit").Cells(7, 1)
End With
So wie du das geschreiben hattest, müsstest du vor jedes Range Objekt auch das entsprechende Tabellenblatt mit angeben (also auch vor den jeweiligen Cells.
Das kann man sich sparen indem man das ganze in ein With - End With packt. Dabei muss man aber dann darauf achten, dass vor jedem Range Objekt ein Punkt gesetzt wird. So wird dann korrekt auf das im With angegebene Blatt referenziert.
Beim Ziel reicht es die linke obere Zielzelle anzugeben.
Gruß Werner
Anzeige
AW: Range in anderes Sheet Kopieren
08.08.2018 16:30:40
Nepumuk
Hallo Andreas,
beim Einfügen muss nur die obere linke Zelle angegeben werden. Teste mal:
With Worksheets("Lieferantenliste")
    Call .Range(.Cells(7, 2), .Cells(i, 12)).Copy( _
        Destination:=Worksheets("Q-Fähigkeit").Cells(7, 1))
End With

Gruß
Nepumuk
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Range in anderes Sheet Kopieren in Excel


Schritt-für-Schritt-Anleitung

Um eine Range von einem Tabellenblatt in ein anderes zu kopieren, kannst du den folgenden VBA-Code verwenden. Stelle sicher, dass du die Namen der Tabellenblätter an deine Bedürfnisse anpasst:

With Worksheets("Lieferantenliste")
    .Range(.Cells(7, 2), .Cells(i, 12)).Copy Destination:=Worksheets("Q-Fähigkeit").Cells(7, 1)
End With
  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel (Alt + F11).
  2. Füge ein neues Modul hinzu (Rechtsklick auf "VBAProject" > Einfügen > Modul).
  3. Kopiere den obigen Code in das Modul.
  4. Stelle sicher, dass die Variable i korrekt definiert ist (z.B. Dim i As Integer).
  5. Führe den Code aus (F5), um die Range zu kopieren.

Häufige Fehler und Lösungen

Fehler: Laufzeitfehler '1004'

Dieser Fehler tritt häufig auf, wenn du versuchst, auf ein Range-Objekt zuzugreifen, ohne das entsprechende Blatt zu referenzieren. Stelle sicher, dass du die Sheets korrekt angibst, wie im oben angegebenen Code.

Lösung:

Verwende die With-Anweisung, um die Referenzierung zu vereinfachen, wie im Beispiel gezeigt. Achte darauf, dass du vor jedem Range-Objekt einen Punkt setzt, um auf das richtige Blatt zuzugreifen.


Alternative Methoden

Wenn du nicht mit VBA arbeiten möchtest, kannst du auch die folgenden Methoden verwenden:

  1. Kopieren und Einfügen:

    • Markiere die gewünschte Range im ersten Tabellenblatt.
    • Drücke Strg + C, um zu kopieren.
    • Wechsle zum zweiten Tabellenblatt und wähle die Zielzelle aus.
    • Drücke Strg + V, um die Daten einzufügen.
  2. Verknüpfte Zellen:

    • Du kannst auch Verknüpfungen zwischen Zellen erstellen, indem du eine Formel wie =Lieferantenliste!B7 in die Zielzelle eingibst. Dies ist nützlich, wenn du die Daten dynamisch halten möchtest.

Praktische Beispiele

Angenommen, du möchtest die Daten von Zeile 7 bis Zeile i und von Spalte 2 bis Spalte 12 von "Lieferantenliste" nach "Q-Fähigkeit" kopieren. Dein VBA-Code könnte so aussehen:

Dim i As Integer
i = 66 ' Setze die Zeile nach deinen Bedürfnissen

With Worksheets("Lieferantenliste")
    .Range(.Cells(7, 2), .Cells(i, 12)).Copy Destination:=Worksheets("Q-Fähigkeit").Cells(7, 1)
End With

Hier wird eine Range von B7 bis L66 kopiert und in A7 des "Q-Fähigkeit"-Blattes eingefügt.


Tipps für Profis

  • Verwendung von Variablen: Definiere Variablen für die Zeilen- und Spaltennummern, um deine Codes flexibler und lesbarer zu gestalten.
  • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen, um Laufzeitfehler zu vermeiden und dem Nutzer klare Informationen zu geben.
  • Makros speichern: Speichere deine Arbeit als Makro-fähige Excel-Datei (.xlsm), um den Zugriff auf deine VBA-Codes zu erleichtern.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Bereiche gleichzeitig kopieren?
Du kannst die Union-Funktion in VBA verwenden, um mehrere Bereiche zu kombinieren und sie dann als einen einzigen Bereich zu kopieren.

2. Was mache ich, wenn ich Fehler beim Ausführen des Makros erhalte?
Überprüfe, ob die Arbeitsblätter existieren und die Range korrekt angegeben ist. Achte darauf, dass alle Referenzen zu den Zellen und Blättern richtig sind, um Laufzeitfehler zu vermeiden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige