Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
680to684
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
680to684
680to684
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Aufruf eines Moduls aus Prozedur heraus

Aufruf eines Moduls aus Prozedur heraus
18.10.2005 12:31:50
Hilde
Hallo Excel-Gemeinde,
Habe ein kleines Progrämmchen geschrieben; bzw. eine Userform entwickelt, in der der Anwender Checkboxen ankreuzen kann (oder nicht).
Habe auch schon den Code geschrieben, was passieren soll, wenn eine Checkbox angekreuzt wurde.
Allerdings funktioniert das nur, wenn ich diesen Code als Sub/Endsub-Prozedur hinter der Userform selbst hinterlege.
Aus Übersichtlichkeitsgründen jedoch hätte ich ihn gerne als eigenes Modul abgelegt und aus der Userform heraus aufgerufen mit "Modulname". Wenn ich das mache, bekomme ich die Fehlermeldung "Variable oder Prozedur anstelle eines Moduls erwartet"
Wo ist mein Fehler? Habe ich hier irgendetwas Grundlegendes von VBA noch nicht verstanden?
Salut und danke schon mal im voraus
hilde

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aufruf eines Moduls aus Prozedur heraus
18.10.2005 12:36:32
Uduuh
Hallo,
du musst dein Programm mit dem Prozedurnamen und nicht mit dem Modulnamen aufrufen. Ein Modul ist nur ein Container für Subs und Functions.
Gruß aus’m Pott
Udo

AW: Aufruf eines Moduls aus Prozedur heraus
18.10.2005 12:49:23
hilde
hallo udo,
danke! habs kapiert! funktioniert auch.
nächste frage: wie genau schaut der code aus, um eine checkbox abzufragen:
If checkboxname.Value = True Then
tuirgendetwas
End If
funktioniert nicht. checkboxname bezieht sich auf den namen der checkbox, nicht aber auf ihren inhalt. muss ich diesen über cation abfragen? also: "checkboxname.caption.value" ?
mein gott, ist das ein gefiesel!
muss jetzt gleich weg! warte aber auf antwort und schaue sie mir gegen abend an.
danke einstweilen und grüße aus bayern, wo wir heute morgen erstmalig autoscheiben freigekratzt haben.
salut - hilde
Anzeige
AW: Aufruf eines Moduls aus Prozedur heraus
18.10.2005 13:02:26
Uduuh
Hallo,
wenn der Code außerhalb des Klassenmoduls der UF steht musst du den UF-Namen angeben.
If Userform1.Checkbox1=true then
Gruß aus’m Pott
Udo

AW: Aufruf eines Moduls aus Prozedur heraus
19.10.2005 08:58:58
hilde
Bonjour Udo,
danke vielmals! klappt hervorragend.
und wie es so ist, gleich kommt die Folgefrage:
habe im Klassenmodul der Userform eine Variable "public name" definiert, da "name" das erste Suchkriterium beim Durchsuchen verschiedenster Workbooks ist. Nun sagt der Debugger allerdings im Modul "CheckboxenPruefen", dass ihm diese Variable nicht bekannt ist.
Frage: Kann ich beim Aufruf des Moduls CheckboxenPruefen die Variable "name" als Parameter mitgeben und wie schaut das Ganze codemäßig aus?
z.B. im Klassenmodul UF steht dann irgendwo:
CheckboxenPruefen(name)
und beim aufgerufenen Modul muss doch auch irgendwo der Parameter auftauchen:

Sub CheckboxenPruefen(name)
if userform_checkbox1:= True Then
FilternUndSortieren
endif
End Sub

und in FilternUndSortieren steht dann irgendwo: .... Criteria1:=name
Hoffe sehr, dass du Dir nochmals die Mühe machst, hier reinzuschauen und mir zu antworten.
danke einstweilen und salut
hilde
Anzeige
AW: Aufruf eines Moduls aus Prozedur heraus
19.10.2005 09:33:47
u_
Hallo,
Public-Variablen muss du in einem normalen Modul deklarieren, dann gelten sie für dea komplette Projekt. Also in einem Modul, ganz oben: Public Name
Gruß
Geist ist geil!
AW: Aufruf eines Moduls aus Prozedur heraus
19.10.2005 10:18:27
Hilde
Hallo "geist ist geil"
habe es gerade versucht, doch das klappt auch nicht! gibt es wieder eine Fehlermeldung "Funktion oder Schnittstelle kann nur eingeschränkt verwendet werden oder verwendet einen Typ der Automatisierung, der von Viual Basic nicht unterstützt wird"
Hinter "einer Arbeitsmappe":

Private Sub Workbook_Open()
Application.ScreenUpdating = False
procStart
End Sub

In Startprozedur:
option explicit
public v1 as...
public v2 as....
usw.
sub procStart()
UF.show
End Sub
in UF hatte ich dann die Variablen deklariert, die ich zum Suchen von bestimmten Datensätzen aus verschiedenen anderen Workbooks benötige. Das hat auch funktioniert bis zu dem Zeitpunkt, zu dem ich aus Übersichtsgründen verschiedene Prozedurabschnitte als eigenständige Module schreiben wollte. Obwohl diese Module aus UF heraus aufgerufen werden, sind ihnen die in UF als public deklarierten Variablen nicht bekannt.
So wollte ich sie als Argumente übergeben. Das funktioniert auch, wenn ich nur eine einzige Variable nehme; möchte ich jedoch 2 oder 3 Variablen übergeben, gibt es Schwierigkeiten (die Variablen sind nicht alle vom gleichen TYP!).
Wenn ich versuche, die Variablen noch eine Modulebene höher zu deklarieren, nämlich in der Startprozedur "procStart", bekomme ich o.g. Fehlermeldung.
Als Fast-Anfängerin fällt es mir hier sehr schwer, zu verstehen, was dahinter steckt.
In meiner Startprozedur habe ich nämlich noch einige andere Public-Variablen deklariert; z.B solche, denen Namen von Workbooks zugewiesen werden, um sie dann über diesen Variablennamen zu öffnen; oder Publics, denen dann mit SET ein Worksheet referenziert wird. Das funktioniert alles....
Und nun zum Schluss noch eine Bitte: Ich bin ein Mensch, der GENAUE Erklärungen benötigt. Wenn Du also meinst, mir helfen zu können und zu wollen, dann bitte nicht kryptisch. Ich weiß auch so, dass du zu den Cracks hier im Forum gehörst!!! Und ich benötige Hilfe und keine Zurechtweisung (sorry für diesen Hinweis, aber mancher von Euch Crakcs ist einfach unerträglich überheblich; und ich weiß nicht, ob Du dazu gehörst; ich hoffe, nicht)
lg und Salut
Hilde
danke
Anzeige
AW: Aufruf eines Moduls aus Prozedur heraus
19.10.2005 10:43:03
u_
Hallo,
kannst du die Mappe (abgespeckt) hochladen? Dann ist der Überblick besser.
Gruß
Geist ist geil!
AW: Aufruf eines Moduls aus Prozedur heraus
19.10.2005 11:32:51
Hilde
hallo "geist ist geil"
wie heißt du eigentlich wirklich? männlein oder weiblein?....
zu deinem vorschlag: muss noch überlegen, weil es sehr sehr viel zum Abspecken gäbe und mich das enorm viel Zeit kosten würde.
Und jetzt muss ich auch ans Kochen, weil die Kinder bald von der Schule nachhause kommen und ihren Tribut fordern; das geht dann bis heute Abend so!
Wie gesagt, ich werde drüber nachdenken.
salut et merci bien
Hilde

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige