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

Code auslagern

Code auslagern
abu
Hallo Zusammen,
ich arbeite gerade an einem groesseren Projekt und es wird langsam unuebersichtlich. Habe nicht sonderlich viel Ahnung vom programmieren also hier meine Frage:
Kann man den Code, der eigentlich in das Modul der Userform gehoert (ansprechen der Steuerelemente etc.) in ein anderes Modul auslagern?
Gruss
Abu

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Code auslagern
07.10.2010 11:56:04
welga
Ja,
dann musst du jedoch den Code mit z.B.
Call Modul2.test
ansprechen.
test ist der name des Makros.
Gruß
AW: Code auslagern
07.10.2010 11:58:34
JogyB
Hallo welga,
das ist falsch. Code in allgemeinen Modulen muss man gerade nicht mit dem Modulnamen ansprechen.
Gruß, Jogy
AW: Code auslagern
07.10.2010 12:07:48
abu
Hallo Welga Jogy,
leider beides nicht:
bei Welga:
Fehlermeldung: Invalid use of property
und bei Jogy:
Method or data member not found.
Gibts noch mehr Moeglichkeiten?
Gruss
Abu
@JogyB
07.10.2010 12:18:17
welga
Hallo JogyB,
was ist nun, wenn in Modul 2 und Modul 3 jeweils ein Makro mit dem selben Namen hinterlegt ist?
Wie wird dann entschieden?
Daher tendiere ich in solchen Fällen immer dazu mit dem Modulnamen anzusprechen.
Ganz abgesehen davon, dass man eigentlich keine Namen zweimal verwenden soll.
Das hilft aber abu nicht weiter.
@Abu:
Mit der Fehlermeldung kann ich leider nichts anfangen.
Kannst du mal ne Bsp.-Datei zum herumspielen hochladen?
Gruß
Anzeige
AW: @Welga
07.10.2010 12:27:55
abu
Hallo Welga,
puhhh muesste dann erstmal alles bereinigen....
Wenn ich aber im Modul statt Private Public schreibe, dann funktioniert deine Version.
Bevor ich nun Annfange alles aufzuraeumen, wuerde ich gerne wissen ob der Weg so ok ist. Ist ne ganze Menge und ich moechte spaeter nicht in schwulitaeten kommen....
Gruss
abu
AW: @Welga
07.10.2010 12:45:48
welga
Also ich würde mit Public arbeiten...
..alle Befehle, welche aus einem Private herauskommen, können meines Wissens nach nicht auf andere Module zugreifen.
Ich wüsste jetzt nicht, was dagegen sprechen würde.
AW: @Welga
07.10.2010 13:00:39
JogyB
Hallo welga und abu,
genau andersrum, alle Subs und Funktionen, die Private deklariert wurden, sind nur innerhalb des Moduls ansprechbar. Der Zugriff aus einer als Private deklarierten Sub/Function auf andere Prozeduren ist dagegen problemlos möglich (sofern diese öffentlich sind).
Also entweder Public oder einfach gar nichts davor (Public ist die Standardeinstellung).
Gruß, Jogy
Anzeige
AW: @JogyB
07.10.2010 12:53:09
JogyB
Hallo welga,
"was ist nun, wenn in Modul 2 und Modul 3 jeweils ein Makro mit dem selben Namen hinterlegt ist?"
In dem Fall liest man die Fehlermeldung des Interpreters und korrigiert das.
Gruß, Jogy
AW: @JogyB
07.10.2010 13:05:39
abu
Ihr beiden,
hab ich's richtig verstanden?
Im Modul der Userform stehen aller verweise mit Call...., sind alles Private und in den Modulen soll ich entweder Public oder nichts schreiben und damit fahr ich gut?
Gruss
abu
AW: @JogyB
07.10.2010 13:12:45
JogyB
Hallo abu,
es kommt darauf an, was Du machen willst. Wenn eine Prozedur aus anderen Modulen, UserForms etc. ansprechbar sein soll, dann musst Du sie Public deklarieren (oder eben nichts davor schreiben).
Soll sie nur aus demselben Modul heraus angesprochen werden können, dann Private.
Gruß, Jogy
Anzeige
AW: @JogyB
07.10.2010 13:40:24
welga
Hallo JogyB,
wenn die Bezeichnung der Makros mit einem identischen Namen jedoch Absicht ist, z.B. um dynamisch Makros anzuwählen, und ich als fauler Programmierer einfach ein Modul kopiere und dann über ersetzen bestimmte Werte ändere, dann funktioniert das mit deiner Methode nicht mehr.
Nichts desto Trotz denke ich, dass Abu geholfen wurde. Die Entscheidung der Deklaration (Privat-Public) muss er jetzt treffen.
Gruß
AW: @JogyB
07.10.2010 14:02:44
JogyB
Hallo welga,
ob man den Modulnamen vorne ändert oder den Makronamen, spielt jetzt wirklich keine Rolle.
Und selbst wenn ich einfach ein Modul kopiere und über Suchen/Ersetzen Werte ändere, wo liegt dann das Problem, hierüber auch den Prozedurnamen zu ändern? Und alles was Private deklariert war, kann man dabei eh belassen.
Übrigens wäre es ohnehin sauberer, in solchen Fällen mit Übergabewerten zu arbeiten.
Es lassen sich allerhand Unsauberkeiten in der Programmierung irgendwie wieder ausbügeln. Nur ist das kein Grund, solchen Blödsinn wie zwei gleichnamige öffentliche Prozeduren überhaupt zu machen. Damit baut man gleich eine gefährliche Fehlerquelle in den Code ein, vor allem weil der Fehler erst zur Laufzeit und nicht beim Debugging auftritt.
Gruß, Jogy
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige