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

Pastespecial-Methode des range objektes konnte nic

Forumthread: Pastespecial-Methode des range objektes konnte nic

Pastespecial-Methode des range objektes konnte nic
Martin
Hallo zusammen!
Ich habe hier ein großes Problem und hoffe jemand kann mir helfen!
Von einer Seite sollen die Daten in ein anderes Dokument übertragen werden. Ich bekomme jedoch immer die o.g. Fehlermeldung wenn es zum Paste kommen soll.
Was ist hier falsch?
Dim y, z, x As String
datum = Date
pfad = ThisWorkbook.Path
Application.ScreenUpdating = False
Blattschutz_aus
y = Format(datum, "yy")
z = Format(datum, "mm")
x = Format(datum, "dd")
Workbooks.Open Filename:=pfad & "\Daten\" & "Umsetzung.xls"
ActiveWorkbook.SaveAs Filename:=pfad & "\" & y & z & x & "Umsetzung.xls"
ThisWorkbook.Activate
Worksheets("Hilfe").Visible = True
Worksheets("Hilfe").Select
Range("A1:F88").Select
Application.CutCopyMode = False
Selection.Copy
Windows(y & z & x & "Umsetzung.xls").Activate
Blattschutz_aus
Worksheets("Hilfe2").Visible = True
Worksheets("Hilfe2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Worksheets("Hilfe2").Select
Worksheets("Hilfe2").Visible = False
Worksheets("Umsetzung").Select
Range("A1").Select
ThisWorkbook.Activate
Worksheets("Hilfe").Select
Worksheets("Hilfe").Visible = False
Blattschutz_ein
Save:
ThisWorkbook.Save
On Error Resume Next
ThisWorkbook.Close
End Sub
Schonmal vielen vielen Dank für die Hilfe!!!
Martin
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Pastespecial-Methode des range objektes konnte nic
11.01.2010 16:49:34
Josef
Hallo Martin,
du jagst ja den Cursor wie eine Hund in der Gegend herum.
Was bei dir falsch ist! Du kopierst einen Bereich, gibst aber keine Zelle zum einfügen an.
Wenn schon, dann muss es so heißen.

Worksheets("Hilfe2").Range("A1").PasteSpecial xlPasteValues
Ohne Select und Activate sieht es so aus.
Sub copyData()
  Dim objWB As Workbook
  Dim strDate As String, strPfad As String
  
  On Error GoTo ErrExit
  
  Application.ScreenUpdating = False
  
  strPfad = ThisWorkbook.Path
  strDate = Format(Date, "yyMMdd")
  
  Set objWB = Workbooks.Open(Filename:=strPfad & "\Daten\" & "Umsetzung.xls")
  objWB.SaveAs Filename:=strPfad & "\" & strDate & "Umsetzung.xls"
  
  Blattschutz_aus
  
  objWB.Worksheets("Hilfe2").Range("A1:F88") = _
    ThisWorkbook.Worksheets("Hilfe").Range("A1:F88").Value
  
  Blattschutz_ein
  
  ThisWorkbook.Close True
  
  ErrExit:
  Application.ScreenUpdating = True
  
  Set objWB = Nothing
End Sub

Gruß Sepp

Anzeige
AW: Pastespecial-Methode des range objektes konnte nic
11.01.2010 18:02:37
Martin
R E S P E C T!
Besten Danke für die super Hilfe! Hatt wunderbar geklappt! Vielen herzlichen Dank! Ich habe diese Formel in einer alten Date gehabt, die uns von einer Kollegin gemacht wurde. Der Makro hat in ihrer Datei funktioniert in meiner jedoch nicht mehr.
Schönen Abend noch!
Martin
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Fehlerbehebung bei der Pastespecial-Methode des Range-Objektes in Excel VBA


Schritt-für-Schritt-Anleitung

Um die Fehlermeldung „die pastespecial-methode des range-objektes konnte nicht ausgeführt werden“ zu beheben, folge diesen Schritten:

  1. Daten kopieren:

    Selection.Copy
  2. Zielbereich auswählen und Pastespecial verwenden: Anstatt Selection.PasteSpecial zu verwenden, stelle sicher, dass du den Zielbereich definierst. Verwende die folgende Syntax:

    Worksheets("Hilfe2").Range("A1").PasteSpecial Paste:=xlPasteValues
  3. Blattschutz: Vergiss nicht, den Blattschutz vor dem Einfügen der Daten aufzuheben und danach wieder zu aktivieren.

  4. Fehlerbehandlung: Implementiere eine einfache Fehlerbehandlung:

    On Error GoTo ErrHandler

    Füge einen Fehlerbehandlungscode am Ende deines Makros hinzu.


Häufige Fehler und Lösungen

  • Fehlender Zielbereich: Wenn du versuchst, mit Selection.PasteSpecial einzufügen, ohne einen Zielbereich anzugeben, erhältst du die Fehlermeldung, dass die Pastespecial-Methode nicht ausgeführt werden kann. Die korrekte Verwendung sieht so aus:

    Worksheets("Hilfe2").Range("A1").PasteSpecial Paste:=xlPasteValues
  • Blattschutz aktiv: Wenn der Blattschutz aktiv ist, kann das Einfügen von Daten scheitern. Stelle sicher, dass der Blattschutz vor dem Einfügen deaktiviert wird.

  • Falsche Paste-Spezifikation: Überprüfe, ob die Paste-Spezifikation korrekt ist (z.B. xlPasteValues).


Alternative Methoden

Falls die Pastespecial-Methode weiterhin Probleme verursacht, kannst du die Werte direkt zuweisen, anstatt sie zu kopieren und einzufügen. Dies umgeht viele der Probleme:

Worksheets("Hilfe2").Range("A1:F88").Value = ThisWorkbook.Worksheets("Hilfe").Range("A1:F88").Value

Diese Methode erfordert keine Verwendung von PasteSpecial und ist oft effizienter.


Praktische Beispiele

Hier ist ein einfaches Beispiel für die Verwendung der Pastespecial-Methode in einem Makro:

Sub CopyData()
    Dim objWB As Workbook
    Dim strDate As String, strPfad As String

    On Error GoTo ErrExit
    Application.ScreenUpdating = False
    strPfad = ThisWorkbook.Path
    strDate = Format(Date, "yyMMdd")

    Set objWB = Workbooks.Open(Filename:=strPfad & "\Daten\Umsetzung.xls")
    objWB.SaveAs Filename:=strPfad & "\" & strDate & "Umsetzung.xls"

    Blattschutz_aus
    ThisWorkbook.Worksheets("Hilfe").Range("A1:F88").Copy
    objWB.Worksheets("Hilfe2").Range("A1").PasteSpecial Paste:=xlPasteValues
    Blattschutz_ein

    objWB.Close True
    Exit Sub

ErrExit:
    Application.ScreenUpdating = True
    Set objWB = Nothing
End Sub

Tipps für Profis

  • Verwende Error Handling, um unerwartete Fehler zu vermeiden.
  • Halte deinen Code so einfach wie möglich, indem du .Select und .Activate vermeidest.
  • Nutze Option Explicit, um sicherzustellen, dass alle Variablen deklariert sind.
  • Teste dein Makro in einer Sicheren Umgebung, bevor du es in einer Produktionsdatei ausführst.

FAQ: Häufige Fragen

1. Warum erhalte ich die Fehlermeldung „pastespecial method of range class failed“? Diese Fehlermeldung tritt auf, wenn der Zielbereich nicht korrekt angegeben ist oder wenn der Blattschutz aktiv ist.

2. Wie kann ich die Performance meines Makros verbessern? Vermeide unnötige .Select und .Activate Aufrufe. Arbeite direkt mit den Objekten, um die Ausführungsgeschwindigkeit zu erhöhen.

3. Was ist der Unterschied zwischen PasteSpecial und der direkten Zuweisung von Werten? PasteSpecial fügt formatierte Daten ein, während die direkte Zuweisung nur die Werte kopiert, was in vielen Fällen schneller und effizienter ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige