Laufzeitfehler 1004: Select Methode

Bild

Betrifft: Laufzeitfehler 1004: Select Methode
von: Adrian
Geschrieben am: 16.11.2015 16:20:16

Hallo liebes Forum,
ich habe mal wieder ein Problemchen:
Mit folgendem Code möchte ich eine neue Arbeitsmappe erstellen, aus dem Hintergrund eine weitere Mappe öffnen und in dieser einige Spalten umstellen/filtern um das Ergebnis dann in die erste Mappe zu kopieren.


Sub MP_genUpdates_Click()
 Dim FSyObjekt As Object, FObekt As Object, wsT As Worksheet, LZ As Double, assemble As Variant
 
 Application.DisplayAlerts = False
 Application.ScreenUpdating = False
 
    Set FSyObjekt = CreateObject("Scripting.FileSystemObject")
    Workbooks.Add
    ActiveWorkbook.Sheets(1).Name = "Serial MP_Masterupdate"
    Set wsT = Sheets(1)
    Sheets(3).Delete
    Sheets(2).Delete
 
Set assemble = GetObject("P:\...\SA_shared_reference.xls")
   
    assemble.Sheets("SA-MP_Shared_reference").Columns("BC:BC").Insert shift:=xlToRight
    assemble.Sheets("SA-MP_Shared_reference").Cells(1, 55).Value = "BTE involved"
    assemble.Sheets("SA-MP_Shared_reference").Columns("BE:BE").Insert shift:=xlToRight
    assemble.Sheets("SA-MP_Shared_reference").Cells(1, 57).Value = "FAL involved"
    assemble.Sheets("SA-MP_Shared_reference").Columns("AU:AU").Insert shift:=xlToRight
    assemble.Sheets("SA-MP_Shared_reference").Cells(1, 47).Value = "ESB-NCF involved"
    assemble.Sheets("SA-MP_Shared_reference").Columns("AU:AU").Insert shift:=xlToRight
    assemble.Sheets("SA-MP_Shared_reference").Cells(1, 47).Value = "ESB-FAF involved"
   
Dim Liste As Range
Set Liste = assemble.Sheets("SA-MP_Shared_reference").Range("A1:BF1")
Liste.AutoFilter
Liste.AutoFilter Field:=8, Criteria1:="EC"      'Eng Leader Center to EC
Liste.AutoFilter Field:=22, Criteria1:="2015"   'Year-CIN Creation Date to 2015
Liste.AutoFilter Field:=40, Criteria1:="Y"   'Corrective to Y
Liste.AutoFilter Field:=42, Criteria1:="Y"   'Extended Flow to Y
Set Liste = Nothing
    ' Blatt einfügen nach erstem Blatt und Inhalt von anderere Datei kopieren
    assemble.Worksheets("SA-MP_Shared_reference").UsedRange.Copy
    wsT.Paste
    assemble.Close savechanges:=False
Set assemble = Nothing

in der GetObject zeile erhalte ich jedoch immer "Laufzeitfehler 1004: die Select-Methode des Worksheet-Objekts konnte nicht ausgeführt werden".
Kann mir jemand aus der Patsche helfen...??? :)

Bild

Betrifft: AW: Laufzeitfehler 1004: Select Methode
von: Daniel
Geschrieben am: 16.11.2015 16:38:22
Hi
kann man davon ausgehen, das in deinem Originalcode die die Zeile mit dem GetObject kein "..." enthält sondern einen vorhandenen vollständigen Dateinamen mit Pfad?
wenn ja, enthält die Datei, welche du da öffnest (SA_shared_reference.xls) ein Workbook_Open-Eventmarko im Modul "DieseArbeitsmappe"?
Wenn ja, muss dieses ausgeführt werden oder ist die Ausführung dieses Workbook-Open-Events für deine Zwecke nicht erforderlich?
Gruß Daniel

Bild

Betrifft: AW: Laufzeitfehler 1004: Select Methode
von: Adrian
Geschrieben am: 17.11.2015 07:21:46
Hallo Daniel,
ja du liegst goldrichtig. Den Pfad habe ich nur aus Gründen der Übersichtlichkeit eingekürzt, die Datei wird von Excel problemlos gefunden. Und ja, die Zieldatei enthält macros, die für meine Vorhaben allerdings nicht benötigt werden.
Wenn ich diese Datei normal öffne, muss ich auch jedes mal bestätigen, dass diese Datei aus einer vertrauenswürdigen Quelle stammt... Das wollte ich hier aber mit Application.DisplayAlerts umgehen...

Bild

Betrifft: AW: Laufzeitfehler 1004: Select Methode
von: Daniel
Geschrieben am: 17.11.2015 08:03:33
Hi
Das Problem an dieser Stelle könnte sein, dass das Open-Eventmakro ein Select oder Activate enthält, welches aber nicht ausgeführt werden kann, weil GetObject die Mappe automatisch ausblendet.
Um diese Eventmakros auszuschalten, nimmt man Applications.EnableEvents = False
Achtung, diese Einstellung unbedingt innerhalb des Macros wieder auf den Ursprungswert zurücksetzen, da diese Einstellung nach Makroende erhalten bleibt.
Gruß Daniel

Bild

Betrifft: AW: Laufzeitfehler 1004: Select Methode
von: Adrian
Geschrieben am: 17.11.2015 09:45:09
Hm, bei diesem Befehl stoppt VBA jedes mal mit "Laufzeitfehler 424 - Objekt erforderlich", egal ob ich den Befehl am Anfang des Codes oder direkt vor dem GetObject definiere...
Wird der nicht genauso benutzt wie z.B. Application.Screenupdating ?

Bild

Betrifft: AW: Laufzeitfehler 1004: Select Methode
von: Adrian
Geschrieben am: 17.11.2015 10:12:09
Ohoh! Ich habe (voreilig wie ich bin) einfach den Befehl von dir copy&pasted.
Allerdings steckt da ein kleines "s" zuviel im Befehl :P
jetzt funktioniert es wunderbar - vielen Dank für den Tip!!!

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Laufzeitfehler 1004: Select Methode"