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

Die Paste-Methode des Worksheet-Objektes konnte ni

Forumthread: Die Paste-Methode des Worksheet-Objektes konnte ni

Die Paste-Methode des Worksheet-Objektes konnte ni
02.01.2013 13:35:59
Hartmut_M
Hallo, verzweifle gerade an folgender Fehlermeldung:
"Die Paste-Methode des Worksheet-Objektes konnte nicht ausgeführt werden."
Ich möchte den Inhalt eines Tabellenblattes in eine andere Datei einfügen.
Das Programm läuft sauber durch.
Nur wenn ich das Tabellenblatt geschützt habe und mit unprotect arbeite kommt die o. a. Fehlermeldung.
Arbeite ich ohne Tabellenschutz und ohne die protect-Anweisungen läuft alles problemlos. Habe keine Erklärung dafür.
Der Fehler kommt immer bei: ActiveSheet.Paste
Habt ihr vielleicht eine Idee woran es liegen könnte?
Gruß Hartmut
'Bereich kopieren, andere Datei öffnen, Bereich einfügen
Range("A1:AZ1462").Copy
Workbooks.Open Filename:=pfad
Windows("Urlaubsliste_GLR.xls").Activate
Sheets("Übersicht").Select
ActiveSheet.Unprotect ("koeln")
Range("A1:AZ1462").Select
ActiveSheet.Paste
Range("A1").Select
Application.CutCopyMode = False
ActiveSheet.Protect ("koeln")
Workbooks("Urlaubsliste_GLR.xls").Close savechanges:=True

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Die Paste-Methode des Worksheet-Objektes konnte ni
02.01.2013 13:44:22
Hajo_Zi
Hallo Hartmut,
Sub kopie()
'Bereich kopieren, andere Datei öffnen, Bereich einfügen
Dim WsTabelle As Worksheet
Set WsTabelle = ActiveSheet
Workbooks.Open Filename:=pfad
With Workbooks("Urlaubsliste_GLR.xls").Sheets("Übersicht")
.Unprotect ("koeln")
WsTabelle.Range("A1:AZ1462").Copy .Range("A1")
.Protect ("koeln")
End With
Set WsTabelle = Nothing
Workbooks("Urlaubsliste_GLR.xls").Close savechanges:=True
End Sub

Anzeige
AW: Die Paste-Methode des Worksheet-Objektes konnte ni
02.01.2013 14:04:32
Hartmut_M
Hallo Hajo,
vielen Dank für die schnelle Hilfe.
Funktioniert einwandfrei und der Code sieht auch besser aus.
Gibt es eine Erklärung, warum mein Code bei Einfügung der protect-Anweisungen nicht lief?
Gruß Hartmut

AW: Die Paste-Methode des Worksheet-Objektes konnte ni
02.01.2013 14:28:47
Hajo_Zi
Hallo Harmut,
vielleicht ohne select?
Range("A1:AZ1462").Paste
Gruß Hajo

Anzeige
AW: Die Paste-Methode des Worksheet-Objektes konnte ni
02.01.2013 14:38:53
Hartmut_M
Nein, geht auch nicht.
Egal, man muss nicht alles wissen ;-)
Danke nochmal für die Hilfe.
Gruß Hartmut
;
Anzeige

Infobox / Tutorial

Die Paste-Methode des Worksheet-Objektes verstehen


Schritt-für-Schritt-Anleitung

  1. Bereich kopieren: Wähle den Bereich aus, den du kopieren möchtest, z.B. Range("A1:AZ1462").Copy.
  2. Zielarbeitsmappe öffnen: Verwende den Befehl Workbooks.Open Filename:=pfad, um die Zielarbeitsmappe zu öffnen.
  3. Aktives Blatt auswählen: Aktiviere das gewünschte Arbeitsblatt in der Zielarbeitsmappe.
  4. Blattschutz aufheben: Setze ActiveSheet.Unprotect ("dein_passwort"), um den Blattschutz aufzuheben.
  5. Einfügen: Füge den kopierten Bereich mit ActiveSheet.Paste ein.
  6. Blattschutz wieder aktivieren: Nutze ActiveSheet.Protect ("dein_passwort"), um den Blattschutz wiederherzustellen.
  7. Arbeitsmappe schließen: Schließe die Arbeitsmappe mit Workbooks("Zielarbeitsmappe.xls").Close savechanges:=True.
Sub kopiere()
    Dim WsTabelle As Worksheet
    Set WsTabelle = ActiveSheet
    Workbooks.Open Filename:=pfad
    With Workbooks("Urlaubsliste_GLR.xls").Sheets("Übersicht")
        .Unprotect ("koeln")
        WsTabelle.Range("A1:AZ1462").Copy .Range("A1")
        .Protect ("koeln")
    End With
    Set WsTabelle = Nothing
    Workbooks("Urlaubsliste_GLR.xls").Close savechanges:=True
End Sub

Häufige Fehler und Lösungen

  • Fehlermeldung: "Die Paste-Methode des Worksheet-Objektes konnte nicht ausgeführt werden."

    • Ursache: Dies tritt häufig auf, wenn der Blattschutz aktiv ist. Stelle sicher, dass du den Blattschutz mit Unprotect aufhebst, bevor du versuchst, etwas einzufügen.
  • Die Paste-Spezial-Methode funktioniert nicht

    • Lösung: Verwende die Pastespecial-Methode des Range-Objektes, um sicherzustellen, dass die Daten korrekt eingefügt werden. Ein Beispiel ist:
    .Range("A1:AZ1462").PasteSpecial Paste:=xlPasteAll

Alternative Methoden

  1. Direktes Einfügen ohne ActiveSheet.Paste:

    • Anstelle von ActiveSheet.Paste kannst du den kopierten Bereich direkt in die Zielzelle einfügen:
      .Range("A1:AZ1462").Value = WsTabelle.Range("A1:AZ1462").Value
  2. Verwendung von Range.PasteSpecial:

    • Anstatt nur die Paste-Methode zu verwenden, kannst du die Pastespecial-Methode des Range-Objektes nutzen, um spezifische Werte oder Formate einzufügen.

Praktische Beispiele

  • Kopieren und Einfügen von Daten: Du möchtest Daten von einem Blatt in ein anderes einfügen, ohne den Blattschutz zu verletzen. Nutze die oben beschriebenen Schritte, um den Inhalt sicher zu übertragen.
Sub Beispiel()
    Range("A1:AZ1462").Copy
    Workbooks("Zielarbeitsmappe.xls").Sheets("Übersicht").Range("A1").PasteSpecial Paste:=xlPasteAll
End Sub

Tipps für Profis

  • Verwende With...End With: Dies verbessert die Lesbarkeit und Effizienz deines Codes.
  • Fehlerbehandlung einfügen: Nutze On Error Resume Next, um unerwartete Fehler während des Kopierens und Einfügens zu handhaben.
  • Vermeide Select: Reduziere die Verwendung von .Select, um den Code effizienter zu gestalten.

FAQ: Häufige Fragen

1. Warum funktioniert die Paste-Methode nicht, wenn das Blatt geschützt ist? Die Paste-Methode kann nicht ausgeführt werden, wenn der Blattschutz aktiv ist. Stelle sicher, dass du den Blattschutz mit ActiveSheet.Unprotect aufhebst, bevor du die Daten einfügst.

2. Was ist die PasteSpecial-Methode und wann sollte ich sie verwenden? Die PasteSpecial-Methode ermöglicht es dir, spezifische Aspekte der kopierten Daten (wie nur Werte oder Formate) einzufügen. Sie ist nützlich, wenn du nicht alle Daten (z.B. Formeln) übertragen möchtest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige