Registriert seit: 06.09.2016
Version(en): 2016
Hallo wertes Forum, ich habe da ein Problem mit .PasteSpecial. Mein Code lautet: Code: wksZMB52.UsedRange.Copy With ThisWorkbook.Worksheets("ZMB52").Cells(1, 1) .PasteSpecial Paste:=xlPasteValues .PasteSpecial Paste:=xlPasteFormats End With Application.CutCopyMode = False
wksCOOISPIOrders.UsedRange.Copy With ThisWorkbook.Worksheets("COOISPI Orders").Cells(1, 1) .PasteSpecial Paste:=xlPasteValues .PasteSpecial Paste:=xlPasteFormats End With Application.CutCopyMode = False
Dieser Code stoppt bei jedem Durchlauf an einer der .PasteSpecial-Zeilen mit dem Fehler 1004: "Die PasteSpecial-Methode das Range-Objects konnte nicht ausgeführt werden.". Allerdings immer an einer anderen. Und sobald ich im Debug erneut auf Play klicke läuft der Code ohne zu murren weiter. Kann mir das jemand erklären und hat eine Lösung parat? Vielen Dank, Lutz
Registriert seit: 06.09.2016
Version(en): 2016
Ich habe jetzt nochmal folgende Zeile probiert: Code: wksZMB52.UsedRange.Copy ThisWorkbook.Worksheets("ZMB52").Cells(1, 1)
bekomme da aber den Fehler 1004: "Die Copy-Methode des Range-Objekts konnte nicht ausgeführt werden". Mit einem Code: wksZMB52.UsedRange.Select
wird der Bereich korrekt markiert... Gruß, Lutz
Registriert seit: 12.03.2016
Version(en): Excel 2003
Hallo
amüsant, Excel kann einen manchmal ganz schön Nerven. Meistens sind es aber eigene Fehler!! Wie hast du wksZMB52 und das zweite wksCOOISPI deklariert?? Vorher mit einer Set Anweisung??
Zu meinen persönlichen Excel Erfahrungen die manchmal sehr seltsam sind! Ich habe es schon gehabt das ich Tabellen Namen von Hand im Code angegeben habe und bekam dauernd Laufzeitfehler. Dann kopierte ich genervt den Namen vom Reiter in den Code und er lief einwandfrei! Ich konnte keinen Unterschied sehen, aber irgendwas schien Excel zu stören?? Dann zuckt man fassungslos die Schultern und freut sich wenn es endlich klappt!
mfg Gast 123
Registriert seit: 06.09.2016
Version(en): 2016
Hallo, ich habe jetzt rumprobiert und scheinbar wird der .UsedRange nicht erkannt und kopiert. Füge ich vor dem .Copy ein .Select ein läuft's... Nachdem ich wegen eines anderen Problems die Zwischenablage am Ende meines Codes geleert habe, ist der Fehler nur noch an einer Stelle aufgetreten und nicht mehr wie zuvor an 3 verschiedenen ohne erkennbares Muster. Dieser betreffende Code sieht jetzt so aus und läuft: Code: With wksCOOISPIComp.Cells(1, 1).EntireRow Set rngCopy = Nothing On Error Resume Next Set rngCopy = .Find(What:="Material", lookat:=xlWhole) On Error GoTo 0 If rngCopy Is Nothing Then MsgBox "Keine Materialien gefunden." & vbNewLine & vbNewLine & _ "Das Programm wird beendet!", vbCritical, Left(ActiveWorkbook.Name, InStr(ActiveWorkbook.Name, ".") - 1) End Else rngCopy.EntireColumn.TextToColumns Destination:=rngCopy, _ DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False, Space:=False, Other:=False, _ FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True End If End With
wksCOOISPIComp.UsedRange.Select wksCOOISPIComp.UsedRange.Copy With wksTWCOOISPIComp.Cells(1, 1) .PasteSpecial Paste:=xlPasteValues .PasteSpecial Paste:=xlPasteFormats End With Application.CutCopyMode = False
Vielleicht kann mir ja einer der Cracks erklären, warum der Beginn des Code-Schnipsels läuft und dann der .UsedRange nicht erkannt wird. Gruß, Lutz
Registriert seit: 12.03.2016
Version(en): Excel 2003
Hallo
an diesem Code ist mir so einiges unklar, den müssen sich bitte die Forum Profi Kollegen mal ansehen! Was macht mich aber stutzig!!?? rngCopy.EntireColumn.TextToColumns Destination:=rngCopy, _ usw.
Diesen Befehl habe ich noch nie gesehen, weiss nicht was der macht? Aber rngCopy.EntireColum kopiert doch eine ganze Spalte und fügt ihn wieder bei rngCopy ein?? Ich bekam beim Versuch das nachzubauen eine Fehlermeldung mit Zirkelbezug! Den Teil kann ich mir nicht erklären, der ist mir zu hoch! Wenn du aber EntireRow und EntireColumn verwendest, vergrösserst du damit nicht den UsedRange auf maximale Spalten und Zeilenzahl?? Könnte dann der nachfolgende Kopiervorgang zum Fehler führen??
Wenn du den UsedRange von wksCOOISPIComp mit Select selektieren kannst müsste diese Mappe ja die Aktive Mappe sein, sonst führt Select ja zur Fehlermeldung! Was genau wird mit wksCOOISPIComp deklariert?? Schade das ich ihn nicht verstehe, da kann ich zum Fehler nur wenig sagen.
mfg Gast 123
Registriert seit: 06.09.2016
Version(en): 2016
Hallo Gast 123, ist eigentlich gar nicht schwer... Code: With wksCOOISPIComp.Cells(1, 1).EntireRow Set rngCopy = Nothing On Error Resume Next Set rngCopy = .Find(What:="Material", lookat:=xlWhole) On Error GoTo 0
sucht in der ersten Zeile nach dem Wort "Material". Ist das Wort nicht vorhanden, läuft das in einen Fehler, daher in On Error... eingeschlossen. Code: If rngCopy Is Nothing Then MsgBox "Keine Materialien gefunden." & vbNewLine & vbNewLine & _ "Das Programm wird beendet!", vbCritical, Left(ActiveWorkbook.Name, InStr(ActiveWorkbook.Name, ".") - 1) End Else rngCopy.EntireColumn.TextToColumns Destination:=rngCopy, _ DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False, Space:=False, Other:=False, _ FieldInfo:=Array(1, 1), TrailingMinusNumbers:=True End If
Wird "Material" nicht gefunden, kommt eine Meldung und das Makro bricht ab. Wird "Material" gefunden, wird die gesamte Spalte mit "Text in Spalten" kopiert und eingefügt, damit die Zahlen, die Excel als Texte erkennt, auch wirklich zu Zahlen werden. Der Rest sollte klar sein. Habe gestern noch festgestellt, dass ein Pause vor dem .Copy zur Verbesserung führt. Muss ich aber heute nochmal testen. Gruß, Lutz
|