Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1564to1568
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
Public Variable funktioniert nicht.
03.07.2017 14:42:34
Anna
Hallo zusammen,
ich bin am Verzweifeln. Ich habe Variablen außerhalb des Subs mittels Public deklariert. Innerhalb des Moduls funktionieren diese auch, aber sobald ich sie in einem andren Modul verwende, bekomme ich Fehlermeldungen, wie "Variable nicht deklariert" oder "Parameter ist nicht optional". Ich habe schon Einiges versucht, aber alles blieb ergebnislos. Ich hoffe, ihr könnt mir helfen.
Liebe Grüße
Anna

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Public Variable funktioniert nicht.
03.07.2017 15:02:16
onur
Poste mal die Datei.
AW: Public Variable funktioniert nicht.
03.07.2017 15:39:52
Nepumuk
Hallo Anna,
in welchem Modul hast du die Variable deklariert?
Gruß
Nepumuk
AW: Public Variable funktioniert nicht.
03.07.2017 15:54:55
Anna
Hallo,

Public year As Integer
Sub test1()
year = 73
MsgBox year
End Sub
Sub test2()
Dim s As Integer
Tabelle2.test1
s = year + 1
MsgBox s
End Sub
Sub test1 und die Deklaration sind im Moudl Tabelle2 und Sub test2 ist in einem "normalen" Modul.
Der Original-Code ist viel länger und komplexer aber selbst für diesen Test hat es nicht funktioniert.
Grüße Anna
AW: Public Variable funktioniert nicht.
03.07.2017 16:04:45
Daniel
Hi
damit deine Variablen wirklich "Public" sind, muss die Deklaration in einem allgemeinen Modul erfolgen (z.b. Modul1)
deklarierst du die Variablen in einem Tabellenblattmodul (Tabelle1) oder im Modul der Mappe (DieseArbeitsmappe), so musst du, wenn du diese Variable in einem anderen Modul verwenden willst, den Modulnamen davor setzen.
also:
Tabelle1.X = 1
DieseArbeitsmappe.Y = 2

Das liegt daran, dass die Tabellenblattmodule und DieseArbeitsmappe eigenständige Module sind und in jedem Modul die gleichen Variablen- und Prozedurbezeichnungen verwendet werden können wie in den anderen Modulen (sonst würde das Prinzip der Eventmakros, welche ja in jedem Modul gleich sind, nicht funktionieren)
Um jetztd die Eindeutigkeit zu Schaffen, muss man daher den Modulnamen mit hinzunehmen.
die allgemeinen Module sind jedoch nicht eigenständig, wenn du mehrere davon hast, werden diese wie ein großes Modul betrachtet und es ist nicht möglich, den gleichen Variablen- oder Prozedurnamen in mehreren allgemeinen Modulen zu verwenden.
Da hier eine Variablenbezeichnung nur einmal vorkommen kann, ist das Voranstellen des Modulnamens nicht erforderlich.
Gruß Daniel
Anzeige
AW: Public Variable funktioniert nicht.
03.07.2017 16:19:48
Anna
Hallo Daniel,
vielen Dank. Das macht Sinn. Ich hatte etwas in der Richtung vermutet, aber im Netz war nichts Konkretes zu finden. Eine kleine Frage dazu noch: Die Variable, die mit Public in einem allgemeinen Modul deklariert wurde, kann ich dann auch in UserForms verwenden? Die bestehen ja allgemein aus Private Subs? Dankeee!!!
Grüße Anna
AW: Public Variable funktioniert nicht.
03.07.2017 16:38:13
Daniel
Hi
ja, was in einem allgemeinen Modul als Public oberhalb der Makros deklariert ist, ist ohne weiteren Zusatz in jedem anderen Modul verwendbar, auch in den Userformmodulen.
deklarierst du die Public-Variable im Modul der Userform, kannst du diese in anderen Modulen nur verwenden, wenn du den Modulnamen voranstellst.
btw, man kann die Private-Subs in Public-Subs umbenennen.
Dann ist es bspw möglich, das Click-Event eines Userformbuttons über ein Makro in einem allgemeinen Modul auszulösen.
Die Automatik der Eventmakros hängt nicht am Private oder Public, sondern nur am Namen.
Gruß Daniel
Anzeige
AW: Public Variable funktioniert nicht.
03.07.2017 16:56:16
Anna
Hey...,
nochmal vielen vielen Dank. Jetzt funktioniert alles super.
Grüße
Anna

98 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige