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

Modul wird nich erkannt

Modul wird nich erkannt
29.05.2020 15:12:52
VBALehrling
Hallo zusammen,
ich bin ganz neu im Forum und hoffe, dass mir jemand helfen kann.
Ich möchte aus einem Menü heraus eine Sub in einem Modul starten.
Die verschiedenen Module haben alle eine StartSub mit dem Namen "S00_startSub".
Würde man das Modul direkt in den Code schreiben zB Hauptmodul.S00_startSub
gäbe es auch keine Probleme.
Um dies aber allgemein zu halten und jegliches Modul starten zu können benenne ich das Modul um
als aktives Arbeitsmodul zB "Wrk_Modul".
Das Umbenennen geht problemlos.
Der Aufruf Wrk_Modul.S00_startSub hingegen liefert den Fehler Laufzeitfehler '424' Objekt erforderlich.
Im Direktbereich hingegen liefert Wrk_Modul. das gewünschte Ergebnis und zeigt alle Subs etc.
Ich kann dazu keinerlei Hinweis in den Foren finden.
Hier der wesentliche Auszug aus dem Code:

Public pv_akt_modul As String       ' Aufzurufendes Modul
Sub Modultest()
pv_akt_modul = "Hauptmodul"
ActiveWorkbook.VBProject.VBComponents(pv_akt_modul).Name = "Wrk_Modul"
' Benennt das  auf zu rufende Modul um
Wrk_Modul.S00_startSub
' Startet die StartSub im Arbeitsmodul
ActiveWorkbook.VBProject.VBComponents("Wrk_Modul").Name = pv_akt_modul
' Stellt den  Namen für das auf zu rufende Modul wieder her
End Sub
Ich arbeite mit Excel 2007. Ist zwar schon betagt, aber ich glaube das liegt nicht amAlter  _
sondern an mir.
Vielen Dank und schon mal sorry für die vermutlich banale Frage.
Harald



		

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Modul wird nich erkannt
29.05.2020 17:33:24
onur
Wozu Modulnamen ändern (und das auch noch als Anfänger) ?
Ich vermute mal, du hast einen ganz gewaltigen Denkfehler.
Erkläre doch einfach mal GENAU, was du überhaupt machen willst und warum du dich dabei gezwungen fühlst, die Modulnamen zu ändern.
AW: Modul wird nich erkannt
02.06.2020 17:10:55
VBALehrling
Hallo Onur,
vielen Dank, dass du dir das angeschaut hast und sorry für die späte Rückmeldung.
Ich war Pfingsten nicht am Rechner.
"Erkläre doch einfach mal GENAU, was du überhaupt machen willst"
Ich möchte Module verwalten. Diese unterliegen alle dem selben Aufbau und sind in sich geschlossene Apps.
Die Idee war, diese in einer Liste zu führen und bei Auswahl einer App aus einer Listbox raus zB in der Tabelle zu lesen wie das dazu gehörige Modul heißt und dann mit Modulname.S00_startSub die Prozedur / App zu starten.
Um nicht in endlosen If - Schleifen abfragen zu müssen wie die App und der dazu gehörige Modulname heißt und das dann hart zu codieren (und das würde sich ja bei jedem dazu kommenden neuen Modul wiederholen) wollte ich den aufrufenden Code variabel gestalten. Ursprünglich wollte ich das Modul selbst als Object definieren und das dann variabel abändern. Dazu habe ich aber Beiträge gelesen, dass man das nicht kann.
Dann kam mir eben die Idee das entsprechende Modul interimsweise umzubenennen als Arbeitsmodul und somit hätte ich immer den selben aufrufenden Code. Und dabei entsteht eben das Problem, das ich schilderte. Ich hatte den Code nach dem Umbenennen auch noch erweitert um
ActiveWorkbook.VBProject.VBComponents("Wrk_Modul").Activate. Das bringt sofort den Erfolg, dass der VBA Compiler das "Wrk_Modul" zu erkennen scheint und das selbe (gewünschte) Verhalten zeigt wie eingangs geschildert im Direktbereich. Trotzdem tritt der Objectfehler wieder auf beim Ausführen der Sub.
Anzeige
AW: Modul wird nich erkannt
02.06.2020 17:15:52
onur
Ich habe mich wohl falsch ausgedrückt.
Deine Antwort beschreibt zwar, was du machst, aber das WARUM ist mir immer noch schleierhaft.
Was soll das Ganze denn bringen?
AW: Modul wird nich erkannt
03.06.2020 09:57:13
VBALehrling
Hallo Onur,
Vielen Dank nochmal für dein offenes Ohr / Auge :)
Ich hab das nun gelöst.
Der Weg ist ähnlich. Allerdings rufe ich mit der Run - Methode die auszuführende Prozedur auf.
Die unterliegt einer bestimmten Nominklatur und ist somit eindeutig und wird in jedem Modul mit Public deklariert. Das Modul kann ich daher in Ruhe lassen.
Warum das nicht funktioniert hat, interessiert mich nach wie vor brennend.
Von Sinn und Zweck mal abgesehen mal rein aus Sicht der Machbarkeit.
Hast du eine Erklärung, warum dieses umbenannte Modul nicht mehr als Modul erkannt wird offensichtlich?
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige