Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1472to1476
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

Zufallsfehler

Zufallsfehler
08.02.2016 15:48:27
Adrian
Hallo leute, ich bin mal wieder am verzweifeln.
Ich habe mir einen Code zusammengebaut, der Daten aus einer geschlossenen Arbeitsmappe in eine _
bereits geöffnete kopieren soll.

Sub Fetchdata()
Dim assemble As Variant
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.EnableEvents = False
Set assemble = GetObject("P:\QUALITY\CABCARGOQUALITY\040_QECM\080_KSI Mod efficiency\020_Data    _
_
_
_
_
Extracts\010_Change Requests\SA - MP.AC.03.03_KPI#107 - Deployment of KSI MOD efficiency WS1  _
solutions.xls")
Dim wsT As Worksheet
Set wsT = ThisWorkbook.Worksheets.Add(, ThisWorkbook.Worksheets(1))
wsT.Name = "SA"
assemble.Worksheets(1).UsedRange.Copy Worksheets("SA").Range("A1")
assemble.Close savechanges:=False
Application.EnableEvents = True
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Set assemble = Nothing
MsgBox ("Fetching Data done. Please proceed with Step 2."), vbInformation
End Sub

So weit so gut, in der Regel funktioniert es auch so wie es soll...
Ich führe diesen Coe auf wöchentlicher Basis aus und dann passiert es:
Run-time error '1004': Method 'Range'of object '_Worksheet' failed.
Der Debug zeigt auf

assemble.Worksheets(1).UsedRange.Copy Worksheets("SA").Range("A1")

und das wars dann mit dem Macro. :-(
Es kommt mir völlig sporadisch vor und dann (z.B. einige Stunden Später) funktionert der code wiederum tadellos! Was kann das nur sein?
LG
Adrian

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zufallsfehler
08.02.2016 16:28:31
ChrisL
Hi Adrian
Ganz sicher bin ich mir auch nicht. Aber könntest mal versuchen:
assemble.Worksheets(1).UsedRange.Copy wsT.Range("A1")
oder
semble.Worksheets(1).UsedRange.Copy ThisWorkbook.Worksheets("SA").Range("A1")
In deiner ursprünglichen Anweisung fehlt der Bezug zur Mappe:
Worksheets("SA").Range("A1")
Aber da wsT schon defniert hast, verwende gleich das.
Ansonsten könnte ich mir noch vorstellen (wegen dem sporadischen Fehler), dass die zu öffnende Datei vielleicht schon durch einen anderen Benutzer in Bearbeitung ist. Da du DisplayAlerts abschaltest könnte ich mir vorstellen, dass die Fehlermeldungen unter gehen.
Dein Fehlerhandling ist übrigens generell zu überdenken. EnableEvents werden zu beginn abgeschaltet. Läuft der Code auf einen Fehler, dann bleiben die Events ausgeschaltet. Entweder überspringst du die Fehler (unschöne Variante) mit "On Error Resume next" oder du springst zum Fehlerhandling:
On Error Goto ErrorHandler
' Dein Code
Exit Sub
ErrorHandler:
' Alles wieder einschalten
cu
Chris

Anzeige
genau,
08.02.2016 16:31:39
Michael
man könnte ja nach dem Set überprüfen if not assembly is nothing oder so?

AW: Zufallsfehler
08.02.2016 16:29:50
Michael
Hi Adrian,
ich wäre nie auf die Idee gekommen, eine Datei mit getobject zu öffnen, aber man lernt nie aus.
Was ist, enn Du in der Zeile wsT verwendest (schließlich definierst Du es ja vorher schon so schön),
insgesamt also:
assemble.Worksheets(1).UsedRange.Copy wsT.Range("A1")
Schöne Grüße,
Michael

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige