Laufzeitfehler 831 Eigenschaft konnte nicht gesetzt werden (VBA)

Floyd, Dienstag, 19.06.2018, 15:03 (vor 182 Tagen)

Hallo Zusammen,

ich bin neu hier und versuche mal mit folgender Frage Hilfe zu bekommen:

Ich lade unter in eine Userform / Listbox ein Dokument aus einem Verzeichnis, welches dann - je nach Auswahl - mit Kopfangaben ergänzt werden.
Das Verzeichnis enthällt alle möglichen Dokumente, die eben aufgelistet werden.

Das funktioniert soweit, teileweise auch mehrfach hintereinander, dann kommt aber irgendwann der og. Laufzeitfehler.
Ich schätze, ich muss sicherstellen, das zum erneuten Aufruf der Listbox alles im Speicher leer ist.
Dazu wäre ein Tipp schön oder anders, wie kann ich feststellen, was stört.

Gruß
Floyd
:-D

 
For Each UF In UserForms
       For zaehler = 0 To UF.List1.ListCount - 1
            If UF.List1.Selected(zaehler) = True Then
            tPath = tPath & UF.List1.List(zaehler)
 
 Documents.Open FileName:=tPath, ConfirmConversions:=False, _
            ReadOnly:=False, AddToRecentFiles:=False, PasswordDocument:="", _
            PasswordTemplate:="", Revert:=False, WritePasswordDocument:="", _
            WritePasswordTemplate:="", Format:=wdOpenFormatAuto
            Set nDoc = ActiveDocument
‚
            tPath = Tpathcopy
            DokNr = DokNr + 1
           AKTUELLE_DATEI_DokNr = AKTUELLE_DATEI + DokNr + DOK_Suffix
 
Application.Run MacroName:="Document_ergaenzen" 
End If
 
Next zaehler
Next UF
 

Laufzeitfehler 831 Eigenschaft konnte nicht gesetzt werden

Martin Asal @, Dienstag, 19.06.2018, 22:31 (vor 182 Tagen) @ Floyd

Hallo Floyd,

es wäre hilfreich zu erfahren, in welcher Zeile der Fehler eigentlich auftritt. Deine Vermutung ("Speicher leeren") geht jedenfalls wohl in die falsche Richtung.

Falls der Fehler in der Zeile "Documents.Open" auftritt, solltest du überprüfen, welche Datei den Fehler auslöst. Oder wird im Makro "Document_ergaenzen" das Dokument gebraucht? Dann könnte es auch daran liegen.

So ist eine Ursachenfrschung jedenfalls nicht möglich.

Anmerkung am Rande, hat nix direkt mit dem Problem zu tun: du solltest vernünftig einrücken. Und nicht mal mit "For Each", dann wieder mit "For" arbeiten. Entweder beides mit For, oder, weil es um Objekte geht, beides mit "For Each". Außerdem brauchst du nicht

Application.Run MacroName:="Document_ergaenzen"

schreiben,

Document_ergaenzen

sollte genügen.

Martin

Laufzeitfehler 831 Eigenschaft konnte nicht gesetzt werden

Floyd, Mittwoch, 20.06.2018, 11:25 (vor 181 Tagen) @ Martin Asal

Hallo Martin,

danke für die schnelle Rückmeldung::-D
Der Fehler tritt lt debug hier auf:

For Each UF In UserForms

For zaehler = 0 To UF.List1.ListCount - 1

Ich weiß nur nicht, ob auf die richtige Stelle verwiesen wird.


Er hat m.E. nichts mit dem aufgerufenen Dokument zu tun. Wenn ich Word schließe und den Bereich jungfräulich starte, funktioniert das Dokument - auch mit Makro.
Es tritt auch wechselseitig mal mit diesem oder anderen Dokumenten auf. Meist nach mehrfacher Nutzung der UF.

Ich hoffe, die Angaben helfen ein bisschen, dass Problem einzukreisen. Bei mir sind leider alle VBA Kenntnisse ausgeschöpft.

Für die Tipps - Danke !!

Gruß Floyd

Laufzeitfehler 831 Eigenschaft konnte nicht gesetzt werden

Martin Asal @, Donnerstag, 21.06.2018, 22:58 (vor 180 Tagen) @ Floyd

Du könntest es mal mit einer Fehlerbehandlung versuchen. Die folgende Fehlerbehandlungsroutine gibt Details zum fehler im Debugfenster aus, das sollte bei der Suche helfen:

On Error GoTo FEHLER
For Each UF In UserForms
    '....
Next UF
 
FEHLER:
Debug.Print "Fehler: " & Err.Number
Debug.Print , UF.Name, zaehler, tPath; vbNewLine
Resume Next
 
End Sub


Martin

Laufzeitfehler 831 Eigenschaft konnte nicht gesetzt werden

Floyd, Montag, 25.06.2018, 09:35 (vor 177 Tagen) @ Martin Asal

Hallo Martin,

dank deiner Rückmeldung habe ich die Fehlerbehandlung mal eingetragen.

Sie führt dazu, das jedesmal ein Laufzeitfehler 91 / Objektvariable oder With-Blockvariable angezeigt wird.
Deaktiviere ich die Zeilen, habe ich wieder das Problem, mal funktioniert es mal nicht.

Ich habe mal versucht, im Web eine Lösung zu finden. Die Beschreibungen verweisen aber in verschiedene Richtungen. Scheinen mehrere User bei dem Thema recht ratlos zu sein.

Jemand schrieb dazu ..
Leider erhalte ich von einigen Nutzern in unregelmäßigen Zeitabständen aus einer Methode einen Laufzeitfehler 91! Ich konnte bisher nicht nachvollziehen, warum dieser Fehler auftritt.

Genau ja ist ja auch mein Problem. Den in der Diskussion geposteten Tipp aktivieren des Verweises Microsoft Forms 2.0 hat leider auch nicht geholfen. Ggf. sind wir aber auch dem richtigen Weg !?

Ich hoffe, du hast noch Ideen dazu ?

Schönen Gruß
Floyd

Laufzeitfehler 831 Eigenschaft konnte nicht gesetzt werden

Martin Asal @, Dienstag, 26.06.2018, 16:25 (vor 175 Tagen) @ Floyd

Ganz banal, könnte es sein, dass du mindestens 1 UF hast, in dem "list1" gar nicht existiert?

Martin

Laufzeitfehler 831 Eigenschaft konnte nicht gesetzt werden

Floyd, Mittwoch, 27.06.2018, 11:30 (vor 174 Tagen) @ Martin Asal

Hallo Martin,

ich habe eine UF und die heißt List1. Es läuft ja auch grundsätzlich bis dann irgendwann der Fehler kommt. Es liegt also m.E. weder an der UF noch an einem Dokument.

Allerdings habe ich in der UF mehrere Dokumentbereiche (Buttons) die beim Aktivieren aus unterschiedlichen Bereichen des Laufwerks die dort vorhandenen Dokumente in die UF / List1 einstellen. Funktioniert alles.

Codeschnpisel siehe unten ...

Ich beobachte, wenn auch leider wieder nicht regelmäßig, dass beim Wechsel des Bereichs (Button) der Fehler auftritt. Daher habe ich angenommen, es ist irgendwas im Speicher.
Starte ich das gesamte Makro neu, funktioniert dann auch das zuvor fehlerhafte Laden des Dokuments .
Hilft dir das irgendwie ..?

Und noch vergessen ... vielen Dank bisher schon mal für die Mühe !!!

Gruß
Floyd


Sub Laden1()
List1.Clear
sPath = VordruckPfad & "111\Antrag\*.do*"
Liste_fuellen
End Sub()

Sub Laden2()
List1.Clear
sPath = VordruckPfad & "111\Mitteilung\*.do*"
Liste_fuellen
End Sub()




Sub Liste_fuellen()

sFile = Dir$(sPath)
Do Until sFile = ""
  If sFile <> "." And sFile <> ".." Then
    List1.AddItem sFile
  End If
  sFile = Dir$
Loop

End sub

RSS-Feed dieser Diskussion
powered by my little forum