Microsoft Excel

Herbers Excel/VBA-Archiv

Laufzeitfehler 1004 bei PasteSpecial

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 Sub
Danke! :)

  

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
GrußformelHomepage


  

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 Sub
Gruß UweD


  

Betrifft: AW: Laufzeitfehler 1004 bei PasteSpecial von: Colin
Geschrieben am: 22.10.2014 11:59:11

Danke, so geht es! :)))


 

Beiträge aus den Excel-Beispielen zum Thema "Laufzeitfehler 1004 bei PasteSpecial"