Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1300to1304
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Kopierprobleme m.PasteSpecial Methode RangeObjekt

Kopierprobleme m.PasteSpecial Methode RangeObjekt
01.03.2013 15:59:08
Peter
Guten Tag
Ich kopiere von Workbook A nach Workbook B Daten und zwar wie folgt:
1. zuerst USEDRANGE kopieren, neue Arbeitsmappe anlegen in Sheet(1) Zelle A1 anwählen und einfügen
2. Formate der ganzen Tabelle ws kopieren und in Sheet(1) der neuen Arbeitsmappe einfügen
Das gibt bei WbkNew.Sheets(1).Range("A1").PasteSpecial Paste:=xlValues
"Laufzeitfehler '1004': Die PasteSpecial-Methode des Range-Objektes konnte nicht ausgeführt werden
Weshalb kann die PasteSpecial-Methode nicht ausgeführt werden?
zu ws
?ws.parent.Name = 996021.xlsm
?ws.columns.Count =16384
?ws.USEDRANGE.Address = $A$1:$AR$15
zu WbkNew.Sheets(1)
?WbkNew.Sheets(1).parent.name = Mappe1
?WbkNew.Sheets(1).columns.count = 16384
Bei
ws.Cells.Copy habe ich genau dasselbe Problem
Bei WbkNew.Sheets(1).Range("A1").PasteSpecial Paste:=xlFormats kommt wieder die gleiche Fehlermeldung
Ich habe auch versucht, die neue Datei zuerst zu speichern, bevor diese Kopierbefehle ausgeführt werden. Doch das hat das Problem auch nicht gelöst.
....
ws.UsedRange.Copy
''' ... und in neuem Workbook / Tabelle einfügen
WbkNew.Sheets(1).Range("A1").PasteSpecial Paste:=xlValues
'''Format der ganzen Quelltabelle kopieren (nicht nur USEDRANGE)
ws.Cells.Copy
''' .... und Formate in Zieltabelle einfügen (mit diesem Vorgehen werden auch Spaltenbreiten und Zeilenhöhen übernommen
WbkNew.Sheets(1).Range("A1").PasteSpecial Paste:=xlFormats
Application.CutCopyMode = False
....
Wo könnte das Problem liegen, resp. wie muss ich den Code ändern, dass das kopieren klappt?
Gruss, Peter

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

Betreff
Datum
Anwender
Anzeige
AW: Kopierprobleme m.PasteSpecial Methode RangeObjekt
01.03.2013 18:51:41
Jürgen
Hallo Peter,
eine Idee, warum der Fehler auftritt, habe ich nicht (und wahrscheinlich müsste man dazu den ganzen Code sehen...). Falls Du nur ein Tabellenblat in eine separate, neue Datei speichern möchtest, hilft Dir vielleicht ja schon der Hinweis, dass mit einem schlichten .copy ein Tabellenblatt inkl. Formtierungen etc. in eine neue Datei kopiert werden kann (also in Deinem Fall "ws.copy").
Gruß, Jürgen

AW: Kopierprobleme m.PasteSpecial Methode RangeObjekt
01.03.2013 21:48:29
Peter
Hallo Jürgen
Danke für die Antwort.
Mein Problem ist, dass ich den gesamten Inhalt brauche, inkl. Formatierungen aber nicht die Formeln, sondern nur Werte.
Wer hilft mir weiter?
Gruss, Peter

Anzeige
AW: Kopierprobleme m.PasteSpecial Methode RangeObjekt
01.03.2013 21:48:30
Peter
Hallo Jürgen
Danke für die Antwort.
Mein Problem ist, dass ich den gesamten Inhalt brauche, inkl. Formatierungen aber nicht die Formeln, sondern nur Werte.
Wer hilft mir weiter?
Gruss, Peter

AW: Kopierprobleme m.PasteSpecial Methode RangeObjekt
02.03.2013 10:11:28
Erich
Hi Peter,
hier mal Jürgens Vorschlag etwas ausgeführt:

Sub KopOhneFormeln()
Sheets(1).Copy          ' legt neue Mappe an mit 1 Blatt
' Formate werden (natürlich) mitkopiert
With ActiveSheet.UsedRange
.Formula = .Value    ' ersetzt im neuen Blatt Formeln durch Werte
End With
End Sub
Application.CutCopyMode brauchst du nicht.
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich und: Schönes Wochenende!

Anzeige
AW: Kopierprobleme m.PasteSpecial Methode RangeObjekt
03.03.2013 17:51:59
Peter
Hallo Erich
Vielen Dank
Ich habe jetzt zwei Varianten die funktionieren. Eine, wenn die zweite Datei schon besteht und die andere, wenn diese noch nicht besteht (mit Vergabe Dateiname und Format):
Sub Kopieren()
Dim wkbThis As Workbook, wkbOther As Workbook
Dim ws1 As Worksheet, wso2 As Worksheet
Set wkbThis = ThisWorkbook
Set ws1 = wkbThis.Sheets("Tabelle1")
Set wkbOther = Workbooks("abcd.xlsm")
Set wso2 = wkbOther.Sheets("Tabelle1")
With ws1.UsedRange
.Copy
End With
With wso.Range(ws1.UsedRange.Address)
.PasteSpecial Paste:=xlPasteValues
End With
Application.CutCopyMode = False
ws1.Cells.Copy
With wso.Cells
.PasteSpecial Paste:=xlPasteFormats
End With
Application.CutCopyMode = False
End Sub

Sub KopOhneFormeln()
Dim wkbThis As Workbook, wkbOther As Workbook
Dim ws2 As Worksheet, wso2 As Worksheet
Set wkbThis = ThisWorkbook
Set ws2 = wkbThis.Sheets("Tabelle2")
ws2.Copy          ' legt neue Mappe an mit 1 Blatt
' Formate werden (natürlich) mitkopiert
With ActiveSheet.UsedRange
.Formula = .Value    ' ersetzt im neuen Blatt Formeln durch Werte
End With
Set wkbOther = Workbooks(ActiveSheet.Parent.Name)
Set wso2 = ActiveSheet
''entweder
'wkbOther.SaveAs wkbThis.Path & "\" & "NEWNAME", FileFormat:=xlOpenXMLWorkbookMacroEnabled
''oder
wkbOther.SaveAs wkbThis.Path & "\" & "NEWNAME", FileFormat:=52
End Sub
Vielen Dank für die Unterstützung.
Gruss, Peter
Anzeige

87 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige