![]() |
Betrifft: Laufzeitfehler 1004 bei PasteSpecial
von: Colin
Geschrieben am: 21.10.2014 14:23:50
Hey ihr VBA-Experten,
vor zwei Tagen habe ich mit VBA-Programmierung angefangen und einiges läuft auch bereits, ich bekomme jedoche eine Fehlermeldung nicht raus. Der folgende Code soll 31 Zellen ("D1:D31") von dem Reiter "Dropdown" einer Datei (quelle) in den Reiter "Dropdown" einer anderen Datei (ziel) an diesselbe Stelle ("D1:D31") kopieren. Dabei soll er wie üblich die Quell-Datei im Hintergrund öffnen, den Reiter sichtbar machen, Schreibschutz raus und alles am Ende wieder rein.
Der Code geht auch immer ein mal; jedoch, sobald er durchgeführt ist und nochmal durchgeführ wird, gibt es einen Laufzeitfehler 1004, der sagt, dass die PasteSpecial-Methode auf dem Range-Objekt nicht ausgeführt werden kann. Wenn ich die Option Exclicit aktiviere, schlägt sie auch an, sag mir aber nocht, wo.
Bitte helft mir, ich verzweifle daran!
Sub LK_BF_aktualisieren() 'Option Explicit Dim i As Integer, k As Integer, quelle As String, quellenname As String, zielname As String Dim fs Set fs = CreateObject("Scripting.FileSystemObject") zielname = ThisWorkbook.Name quelle = fs.GetParentFolderName(ThisWorkbook.Path) & "\WVT-DVT-Tracking_Übersicht.xlsm" Application.ScreenUpdating = False 'Funktionierender Ent-formatierungs-Code (fehlt hier) Workbooks.Open Filename:=quelle quellenname = ActiveWorkbook.Name Sheets("Dropdown").Visible = True 'Target-file (no enabling needed as the file is not saved) Sheets("Dropdown").Select ActiveSheet.Unprotect "0815" Range("D1:D31").Select Selection.Copy Windows(zielname).Activate Sheets("Dropdown").Visible = True 'Source-file Sheets("Dropdown").Select ActiveSheet.Unprotect "0815" Range("D1:D31").Select Selection.PasteSpecial Paste:=xlPasteValues Range("D32").Select k = Range("D32").Value 'Anzahl BF für Schleife ActiveSheet.Protect "0815" Sheets("Dropdown").Visible = xlVeryHidden 'Source-file Workbooks(quellenname).Close SaveChanges:=False 'Funktionierender Re-formatierungs-Code (fehlt hier) ActiveSheet.Protect "0815" Application.ScreenUpdating = True Application.CutCopyMode = False End SubDanke! :)
![]() ![]() |
Betrifft: AW: Laufzeitfehler 1004 bei PasteSpecial
von: Hajo_Zi
Geschrieben am: 21.10.2014 15:05:53
Select, Activate usw. ist in VBA zu 99,9% nicht notwendig.
Der Cursor ist kein Hund der überall rumgeführt werden muss.
Hinweise zu select usw. Hajo-Excel.de
Hinweise zu select usw. Online-Excel.de
Hinweise zu select usw. Online-Excel.de
Option Explicit Sub LK_BF_aktualisieren() 'Option Explicit Dim i As Integer, k As Integer, quelle As String, quellenname As String, zielname As String Dim fs Set fs = CreateObject("Scripting.FileSystemObject") zielname = ThisWorkbook.Name quelle = fs.GetParentFolderName(ThisWorkbook.Path) & "\WVT-DVT-Tracking_Übersicht.xlsm" Application.ScreenUpdating = False 'Funktionierender Ent-formatierungs-Code (fehlt hier) Workbooks.Open Filename:=quelle Sheets("Dropdown").Visible = True 'Target-file (no enabling needed as the file is not saved) _ Sheets("Dropdown").Unprotect "0815" With Workbooks(zielname).Sheets("Dropdown") Range("D1:D31").Copy .Visible = True 'Source-file .Unprotect "0815" .Range("D1:D31").PasteSpecial Paste:=xlPasteValues k = Range("D32").Value 'Anzahl BF für Schleife .Protect "0815" .Visible = xlVeryHidden 'Source-file ActiveWorkbook.Close SaveChanges:=False End With 'Funktionierender Re-formatierungs-Code (fehlt hier) Application.ScreenUpdating = True Application.CutCopyMode = False End Sub
![]() ![]() |
Betrifft: AW: Laufzeitfehler 1004 bei PasteSpecial
von: Colin
Geschrieben am: 21.10.2014 18:41:02
Leider ist das Problem auch bei dem Code dasselbe; beim 2. Mal kommt der Fehler...
![]() ![]() |
Betrifft: AW: Laufzeitfehler 1004 bei PasteSpecial
von: UweD
Geschrieben am: 22.10.2014 10:47:10
Hallo
ich hab es mal umgebaut...
die beiden .visible= xx können sogar noch weggelassen werden
Sub LK_BF_aktualisieren() Dim k As Integer, Quelle As String Dim WBQ Quelle = ThisWorkbook.Path & "\WVT-DVT-Tracking_Übersicht.xlsm" Application.ScreenUpdating = False Workbooks.Open Filename:=Quelle Set WBQ = ActiveWorkbook With ThisWorkbook.Sheets("Dropdown") 'Ziel .Visible = True .Unprotect "0815" WBQ.Sheets("Dropdown").Range("D1:D31").Copy .Range("D1:D31").PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False k = WBQ.Sheets("Dropdown").Range("D32").Value 'Anzahl BF für Schleife .Protect "0815" .Visible = xlVeryHidden WBQ.Close SaveChanges:=False End With Application.ScreenUpdating = True End SubGruß UweD
![]() ![]() |
Betrifft: AW: Laufzeitfehler 1004 bei PasteSpecial
von: Colin
Geschrieben am: 22.10.2014 11:59:11
Danke, so geht es! :)))
![]() |