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

Automatisierungsfehler - Referenz

Automatisierungsfehler - Referenz
05.07.2023 13:13:23
Jan

Ich habe einen sehr umfangreichen Code, der Dateien in einer Schleife bearbeitet. Bei einem Durchlauf von 100 Dateien bleibt der Code manchmal bei Datei, manchmal bei 70 (kein Muster) hängen, weil er den Wert aus einer Zelle nicht ziehen kann. Der Fehlerhinweis ist ein Automatisierungsfehler mit dem Hinweis, dass auf den referenzierten Typ nicht zugegriffen werden kann. Die betreffende Codezeile macht nichts anderees als sich einen Wert aus einer bestimmten Zelle zu holen. Aktiviere ich das Blatt mit der Referenzelle dann zum debuggen kann es denWert abgreifen. Befinde ich mich aber auf einem anderen Blatt und versuche dieses Blatt im Direktbereich zu selektieren schlägt das mit demselben Fehlerhinweis fehl.

Der Code kann einfach nicht auf das Blatt zugreifen und die Datei ist tatsächlich defekt. Öffne ich diese Datei aber vor dem Schleifendurchlauf ist diese vollkommen ok.

Dias Nichtvorhandensein eines nachstellbaren Fehlermusters (manchmal bei Datei 50, manchmal 70 etc.) macht es mir schwer den Fehler einzugrenzen. Code ist sehr umfangreich (läuft im optimierten Stil trotzdem 30-60 sek pro Durchlauf), aber ein Einstellen hilft auch nichts, da der Code einzelne sauber durchläuft. Alle Codes, die pro Schleife durchlaufen sind sauber, da ich diesen manuell x-mal ohne Fehler durchlaufen lassen kann.

Solche Fehler kamen ab und zu, weil ich parallel eine Owncloud laufen habe, so dass es während der Schleife manchmal zu Zugriffsproblemen kam. Jetzt deaktiviere ich die Owncloud beim Durchlaufen und trotzdem kommt irgendwann der Fehler.

Hat irgendwer eine Idee, wo ich schauen kann, um das Problem zu lokalisieren?

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Automatisierungsfehler - Referenz
05.07.2023 13:55:15
Tor
Hallo Jan,

ich vermute, dass du vielleicht in deinem Code mit select usw. arbeitest, was man nicht machen sollte. Auf jeden Fall waere es aber doch hilfreich deinen Code zu posten. Sonst wird helfen eher Raterei und sehr schwierig.
Gruss Tor


AW: Automatisierungsfehler - Referenz
05.07.2023 14:37:08
JoWE
Hallo,
"Fehlermuster (manchmal bei Datei 50, manchmal 70 etc.)"
Das deutet m.E. auf ein Zeitproblem hin; das Makro will einen weiteren Step ausführen,
jedoch ist die Application (Excel) noch mit dem vorherigen Schritt beschäftigt.
Versuche an dieser Stelle ein
Application.Wait(Now + #0:00:02#)
(hier 2 Sekunden warten) einzubauen.
Gruß
Jochen


Anzeige
AW: Automatisierungsfehler - Referenz
05.07.2023 19:18:23
Jan
Hi Jochen,

wenn ich mal wüsste an welcher Stelle... Ich vermute w/dem eher zufälligen Ausfall auch irgendeinen Zugriffskonflikt, aber weiß nicht wo.

Ich hatte das schon mal vor einiger Zeit. Damals waren mehrere Anmeldungen auf dem Office, die sich offensichtlich gestört haben und dann das Excel immer wieder zum Abstürzen brachten. Aber das ist jetzt nicht der Fall - ich habe die (Office)registry komplett gelöscht und neu generiert.

Ich bin nicht sicher, wann das Problem jetzt das erste mal aufgetreten ist, deshalb weiß ich nicht, ob es vielleicht damit zusammenhängt, dass ich auf 64-bit umgestellt habe. Merkwürdig ist aber, dass es auf einem anderen 64-bit Rechner mach wie vor sauber sauber durchläuft.

Bringen Dich diese Punkte vielleicht noch auf eine Idee?


Anzeige
AW: Automatisierungsfehler - Referenz
10.07.2023 12:57:50
Jan
Hi zusammen,

ich denke ein potentielles Fehlerthema habe ich gefunden. Am Endeeiner jeden wird eine bearbeitetet Datei unter einem neuen Namen gespeichert und dann geschlossen.

Ich habe den Eindruck, dass (manchmal) das Speichern noch nicht beendet ist und der Schliessvorgang dann die Datei zerschiesst. Ich kann dies nun via wait per definition um 2sec o.ä. verzögern, aber bei 100+ Schleifendurchläufen und dem doch nur sehr unregelmässig auftretenden Problem verlängere ich die Dauer in den meisten Fällen unnötig.

Kenn Ihr eine Möglichkeit, zu prüfen, ob das Speichern abgeschlossen ist und dann erst der Schliessvorgang startet?


Anzeige
AW: Automatisierungsfehler - Referenz
10.07.2023 13:53:27
Jowe
Hallo Jan,
vielleicht hilft es zu prüfen ob die Datei noch geöffnet ist.
Siehe Makro und Funktion:
'Code stammt von
'https://www.denisreis.com/excel-vba-grundlagen/Denis Reis


Option Explicit

Sub MappeOffen()
  If MappeOp("Test.xls") = True Then
    MsgBox "Die Mappe ist geöffnet"
  Else
    MsgBox "Die Mappe ist geschlossen"
  End If
End Sub

Function MappeOp(strName As String) As Boolean
  Dim Mappe As Workbook
  MappeOp = False
  For Each Mappe In Application.Workbooks
    If Mappe.Name = strName Then
      MappeOp = True
      Exit Function
    End If
  Next Mappe
End Function
Gruß
Jochen


Anzeige
AW: Automatisierungsfehler - Referenz
10.07.2023 14:45:30
Jan
Hi Jowe,

dank Dir, hilft leider nicht. Die Datei ist offen und ich will erst schliessen, wenn das Speichern beendet ist. d.h. ich hätte gern einen Trigger der zeigt, ob das Speichern abgeschlissen ist...

BG


AW: Automatisierungsfehler - Referenz
10.07.2023 15:40:37
JoWE
eben, Du musst einfach etwas weiter denken.
Laß' die Prüfung mehrfach laufen,
iwann wird die Datei dann ja geschlossen sein


AW: Automatisierungsfehler - Referenz
10.07.2023 16:27:53
Jan
ah, jetzt verstehe ich unser Missverständnis. Mein Thema ist nicht, dass die Datei nicht schliesst, sondern wenn sie schon schliesst während der Speichervorgang schon läuft wird sie korrupt. Das Schliessen darf erst starten, wenn das speichern abgeschlossen ist...


Anzeige
AW: Automatisierungsfehler - Referenz
05.07.2023 19:10:59
Jan
Hi Tor,
hochladen ist leider keine Option, da die vielen Prozeduren, die pro Schleife durchlaufen x-Tausend Codezeilen haben. Durch diese Menge Code kannst Dich (und willst Du sicher auch nicht) nicht + der Code ist im Grundsatz sauber (weil er ohne Schleife problemlos durchläuft). Wüsste ich an welcher Stelle es ein Problem gibt wäre es (i) leichter und (ii) könnte ich dann den betreffenden Code hochladen, aber so ist es eben gerade so kompliziert und ich hoffe auf grundsätzliche Ideen.

Select & Co wird nirgends im Code eingesetzt, unnötig und würde ohne Not auf die Performance drücken...


Anzeige
AW: Automatisierungsfehler - Referenz
05.07.2023 15:17:35
snb
Verwende GetObject


AW: Automatisierungsfehler - Referenz
05.07.2023 19:20:33
Jan
was meinst Du damit? Beim debuggen habe ich gecheckt, dass - bei Auftretendes Fehler - das Objekt/die Tabelle nicht zugreifbar ist. Die Datei ist dann schon zerschossen und nicht mehr nutzbar. ich muss diese löschen, durch die Vorversion ersetzen udn dann läuft die sauber durch und es passiert irgendwann bei einer anderen. Irgendwas zerschiesst (gefühlt per random) die Datei


AW: Automatisierungsfehler - Referenz
05.07.2023 19:39:57
Jan
Muss mich korrigieren. Auch auf dem anderen Rechner gibt es Probleme beim Durchlauf.

Für den Test habe ich eine weitere Schleife geschrieben, die alle vorher durchlaufenen Dateien einmal öffnet, versucht zu speichern und wieder schliesst. Dadurch erkenne ich dann die defekten. Bei denen ist dann auch der Zugriff auf einzelne Seiten mit dem Fehler

Laufzeitfehler '-2147319767 (80028029)':

Automatisierungsfehler
Ungültige Vorreferenz oder Referenz zu unkompiliertem Typ

Da die Dateien bei diesem "Speichertest" auch wieder durch eine Schleife laufen bin ich nicht sicher, ob sie schon vor dem Speichertest oder erst dabei kaputt geht. Komme wahrscheinlich nicht umhin, jede Datei einmal manuell zu öffnen und zu checken...

Echt schräg, Problem war bis vor 2,3 Wochen nie da...


Anzeige
AW: Automatisierungsfehler - Referenz
10.07.2023 13:26:03
Jan
... und noch eine Idee - kann es sein, dass sich Excel in einem der vielen Module vorher noch irgendwo "festhält"? Ich bin sehr sicher, dass es ein Zugriffskonflikt ist.

Kann man irgendwo sehen wenn Excel noch Zugriffsrechte von vorherigen Aktionen hat? Ich kann mich erinnern, dass ich das früheri m Dateimanager unter "Details" sehen konnte, aber da finde ich nichts konkretes...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige