gerry56
Goto Top

Laufzeitfehler 424: Objekt erforderlich nach Umstellung von DropDown Formularfeld auf Kombinationsfeld

Da immer mehr Empfänger in der Auswahlliste eingetragen wurden, mußte wegen der 25-Einträge Beschränkung ein zweites DropDown Formularfeld erstellt werden.
Nun waren aber 50 Auswahlmöglichkeiten auch zu wenig,

Daher sollte von 3 DropDown Formularfelder auf 1 Kombinationsfeld umgestellt werden.

Bei einem Testformular funktionierte alles.
Auch die Übernahme des ausgewählten Eintrages und die Anzeige der Indexnummer funktionierte beim Testformular einwandfrei.

Es gibt aber verschiedene Formulare, wo die selben Empfänger verwendet werden sollen.
Daher ist die Empfängerliste in einer eigenen.Dot-Datei gespeichert.

Die Auswertung der Auswahlfelder ist daher in einer Sub() in der Dot-Datei gespeichert.
In den einzelnen Formularen ist im VBA-Projekt im Kapitel Document open
nur der Eintrag
Sub Document_Open()
Einstieg1 ' der Aufruf der Subprozedur, die in der Dot-Datei gespeichert ist
End Sub

Bis zur gewollten Umstellung hat alles problemlos funktioniert.
Jetzt, seit der geplanten Umstellung mit nur einem Kombinationsfeld funktioniert absolut nichts mehr und es gibt immer wieder die Fehlermeldung.
Wo muß ich was eintragen.

Bitte um Hilfe
Danke im voraus
Gerry

Content-ID: 560347

Url: https://administrator.de/forum/laufzeitfehler-424-objekt-erforderlich-nach-umstellung-von-dropdown-formularfeld-auf-kombinationsfeld-560347.html

Ausgedruckt am: 30.12.2024 um 17:12 Uhr

143127
143127 23.03.2020 um 10:36:29 Uhr
Goto Top
Naja, ein ActiveX Steuerelement was die Combobox ist wird nunmal gänzlich anders gehandhabt als Formularfelder. Ein Unterschied wie Tag und Nacht.

Moment - in der Ferne sehe ich den Code näher kommen, die Glaskugel verwischt ihn noch etwas, vielleicht erreicht er ja noch die Grenze vor Freitag ...
gerry56
gerry56 23.03.2020 um 12:24:50 Uhr
Goto Top
Hier der Code für die Aufgabe der Combobox

Sub Document_Open()
ComboBox1.AddItem ("Test+1")
ComboBox1.AddItem ("Test*2")
ComboBox1.AddItem ("Test+3")
ComboBox1.AddItem ("Test+4")
ComboBox1.AddItem ("Test+5")
ComboBox1.AddItem ("Test+6")
ComboBox1.AddItem ("Test+7")

End Sub

Wie im Eingangspost schon geschrieben, funktioniert der Code, wenn ich alle Befehle in das Formular integriere.
Speichere ich den Quellcode in der Dokumentenvorlagedatei name.dot, funktioniert nichts.

Grrry
143127
143127 23.03.2020 aktualisiert um 12:56:32 Uhr
Goto Top
Ist ja auch klar denn es ist ja eine Vorlage, die arbeitet ja anders. Von einer Vorlage werden bei Doppelklick neue Dokumente erstellt.
gerry56
gerry56 23.03.2020 um 14:24:22 Uhr
Goto Top
Stimmt nicht.
Diese DOT-Datei wird statt der Normal.dot mit der Dokumentendatei verknüpft.
In so einer Dokumentenvorlage sind die Standardschriftart, Standardschriftgröße, Kopfzeilenvorlagen, Fußzeilenvorlagen usw. definiert.
143127
143127 23.03.2020 aktualisiert um 15:03:04 Uhr
Goto Top
In dem Fall stimmt der Verweis auf die Combobox nicht. Wir kennen ja den Aufbau deiner Files nicht ...
Pack die Items einfach in das Form-Open Event und feddich. Man kann sichs auch unnötig schwer machen face-smile.
gerry56
gerry56 23.03.2020 aktualisiert um 18:16:23 Uhr
Goto Top
Ich habe den Aufbau der Files oben beschrieben

Die einzelnen Dokumente sind natürlich Dateien mit der Endung DOC.

In diesen Dateien gibt es Eingabefelder und Auswahlfelder, die bis jetzt DropDown Formularfelder waren.
Da es unübersichtlich ist, für eine Eingabe 3 Felder zu verwenden, sollten die Auswahlmöglichkeiten auf 1 Kombinationsfeld geändert werden.
Info.
Bei DropDown Formularfeldern ist die Auswahl auf 25 Einträge beschränkt.
Diese Beschränkung entfällt es bei einem Kombinationsfeld.

In allen Formulardateien gibt es in VBA NUR ZWEI Einträge
Im Project (DATEINAME) /Microsoft Word Objekte / ThisDocument
Abschnitt "Document", Kapitel "Open"

1.)
Sub Document_Open()
Einstieg1 'Hier wird ein Macro aufgerufen, das in der Dokumentenvorlage (DOT-Datei) im Abschnitt Module gespeichert ist.
End Sub

2.)
Im Project (DATEINAME) /Verweise
Verweis auf Name.dot

DAS WAR ES. Mehr gibt es in den Formulardateien nicht.


In der Dokumentenvorlage ( Die DOT-Datei)
Im Projekt TemplateProject (DATEINAME der DOT-Datei)
Der Abschnitt Microsoft Word Objekte ist LEER.
Nur im Abschnitt "Module" sind im Kapitel "NewMacros" die einzelnen Macros abgespeichert.


Das ist alles.
Mehr gibt es nicht.

Wird jetzt ein "Kombinationsfeld" in ein Formulardokument eingefügt, passiert folgendes.
Bei Auswahl "Code anzeigen" aus dem Kontextmenü des Kombinationsfeldes wird die Subroutine "Private Sub ComboBox1_Change()" angezeigt.
Leider ist dieser Abschnitt DIREKT in der jeweiligen Formulardatei im Project (DATEINAME) /Microsoft Word Objekte / ThisDocument.

Ich will aber die Befüllung der ComboBox in der DOT-Datei definieren, so wie es mit den "DropDown Formularfelder" möglich war.
Der Grund ist, daß die Namen mit allen Zusatzinfos für alle Formulare ident sind.

ZUSATZINFO.
Wenn ich die Auswahleinträge direkt in der jeweiligen Formulardatei im Abschnitt "Document" "Open" befülle, funktioniert es.
Sub Document_Open()
ComboBox1.AddItem (".")
ComboBox1.AddItem ("1")
ComboBox1.AddItem ("2")
ComboBox1.AddItem ("3")
End Sub

Verschiebe ich die Befüllung in die Vorlagendatei (DOT) als Sub, erhalte ich beim Aufruf die Fehlermeldung
Der veränderte Quellcode
Sub Document_Open()
eintragrein
End Sub

Laufzeitfehler "424":
Objekt erforderlich

Bei Klick auf debuggen wird der Aufruf der Subroutine markiert.

Die Subroutine / das Macro eintragrein ist aber sicher bei den anderen Makros in der Vorlagendatei (DOT) im Abschnitt Module / NewMacros gespeichert.

Ich bitte um Hilfe
Danke im voraus

Gerry