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

Variabeln Deklaration für alle Module

Variabeln Deklaration für alle Module
08.03.2006 23:50:00
thomas_d
Hallo
Bei mir klappt es irgendwie nicht Variabeln allgemein zu deklarieren.
Nach Möglichkeit sollten bestimmte Variablen ALLEN Modulen und "Microsoft Excel Objecte - Tabelle1 " zur verfügung stehen (eventuell auch noch im UserForm)
Im Modul 1 wird ein Makro ausgeführt indem die Variablen festgesetzt werden.
Diese werden auch in späteren Modulen/Makros nicht mehr geändert, sollten aber zur Verfügung stehen.
Mit Public klappt das aber nicht (Modul1).
Public gilt nur im gleichen Modul, oder?
Muss ich noch Option explicit dazuschreiben,oder sowas ? Bei solchen Kleinigkeiten könnt ich mich echt aufregen GRRRRRRR
Bei Antwort BITTE dazuschreiben wo ich GENAU die Deklaration machen muss
besten dank im voraus
gruß
Thomas_d
P.S. zusatzfrage: Was passiert wenn man Variablen doppelt deklariert ?

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variabeln Deklaration für alle Module
08.03.2006 23:59:15
Dieter
Hi,
Public in einem Standardmodul(wie z.B. Modul1) ist schon richtig.
Deklaration ganz oben noch vor der ersten Prozedur und nach Option Explicit.
mfg Dieter
AW: Variabeln Deklaration für alle Module
09.03.2006 00:43:51
thomas_d
Hi Dieter
Habs grad ausprobiert. GEHT Nicht
In Modul 1 sind 2 Prozeduren. In der 2 Prozedur ist die Variabel(aus Prozedur 1) = 0 obwohl sie eigentlich 23 sein sollte. Hast ne Idee waran es liegen könnte.
Die Variable ist ne Integer.
option expicit
public z as Integer
gruß
AW: ne geht nicht
09.03.2006 00:58:04
thomas_d
Hi Dieter
Habs grad ausprobiert. GEHT Nicht
In Modul 1 sind 2 Prozeduren. Schon in der 2 Prozedur ist die Variabel(aus Prozedur 1) = 0 obwohl sie eigentlich 23 sein sollte. Hast ne Idee waran es liegen könnte.
Die Variable ist ne Integer.
option expicit
public z as Integer
gruß
Anzeige
AW: ne geht nicht
09.03.2006 07:15:00
Erich
Hallo Thomas,
hast du die Variable vielleicht mehrfach deklariert? Die Deklaration darfst du nur einmal machen, sonst hast du mehrere voneinander unanbhängige Variablen z.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
geht fast
09.03.2006 10:44:06
thomas_d
Hallo Erich
Ja hast Recht ich hab die Deklaration doppelt gemacht.
Jetzt stehen die Variabeln allen Modulen zur verfügung.
Mache ich aber über einen CommandButton eine Abfrage dieser Variabeln, ist sie wieder 0
Steht die Public Variabeln nur den Modulen zur Verfügung und nicht in "Microsoft Excel Objecte - Tabelle1"?
Selbst wenn ich mit dem CommandButton eine Prozedur aufruf (in Modul1) um die Variable abzufragen ist diese wieder 0
Was mach ich falsch ?
gruß
Thomas
Anzeige
AW: geht fast
09.03.2006 12:02:22
Erich
Hallo Thomas,
da liegt vielleicht der gleiche Fehler vor, denn die Variable sollte auch in einem Klassenmodul da sein.
Wenn du im Coding der Tabelle mit der rechten Maustaste auf das z klickst, dann auf Definition, siehst du, wo die Variable dklariert ist. Da sollte dann deine (einzige) Deklaration Public z... stehen.
Das Gleiche geht auch mit Shift+F2, wenn der Cursor auf der Variablen steht.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
immer noch nicht
09.03.2006 12:42:53
thomas_d
Hi
Ne geht immer noch nicht. Die Variable z ist nur einmal deklariert. Hab das überpfrüft.
Scheint so als würde innerhalb der Prozedur die Variable allen Modulen/Prozeduren zur verfügung stehen. Ist diese Abgeschlossen und ich will die Variable über einen Commandbutton nochmal aufrufen dann ist sie weg.
Es ist aber leider zwingend erforderlich dass ich die Variable IMMER zur verfügung hab.
gruß
Thomas
Anzeige
AW: immer noch nicht
09.03.2006 13:20:49
Erich
Hi Thomas,
weg ist die Variable bestimmt nicht...
Kann es sein, dass sie irgendwo auf 0 gesetzt wird? (Du kannst das per Überwachung herausbekommen.
Was meinst du genau mit "will die Variable über einen Commandbutton nochmal aufrufen"?
Was steht da im Code des Click-Eregnisses?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Re: immer noch nicht
09.03.2006 13:35:24
thomas_d
Hi
Wie kann ich die Variable überwachen?
Zu testzwecken hab ich einfach mal

Private Sub CommandButton3_Click()
Cells(6, 3) = z
End Sub

Bevor ich den Button drücke stimmt die Variable noch. Danach ist sie 0
Ne sie wird nicht auf null gesetzt.
Ich hab mir ganz am ende der letzten Prozedur die Variable in eine Zelle schreiben lassen und da stimmte sie noch.
Nur wenn ich den Button drücke und sie mir auch in eine zelle schreiben lasse ist sie weg.
gruß
Thomas
Anzeige
AW: Re: immer noch nicht
09.03.2006 18:38:12
Erich
Hi Thomas,
probierst du mal das Makro "init" und den CommandButton in dieser Mappe aus?
https://www.herber.de/bbs/user/31766.xls
In "init" wird z auf 555 gesetzt, der Button erhöht den Wert von z um 1.
Mit der Überwachung kannst du herausbekommen, an welcher Stelle z auf 0 gesetzt wird. Dazu gehst du in das Modul, in dem z (mit Public) deklariert ist, klickst mit der rechten Maustaste auf z und wählst "Überwachung hinzufügen" aus.
Im Dialog wählst du dann "alle Module" und "Unterbrechen, wenn Wert geändert wurde".
Wenn du dann "init" laufen lässt oder auf den Button klickst, bleibt die jeweilige Prozedur hinter der Anweisung stehen, die den Wert von z geändert hat.
Noch 'ne Bemerkung: Wenn die Mappe geschlossen und wieder geöffnet wird, sind erst mal alle Variablen "weg", haben einen Initialwert.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
Ich dreh durch KLAPPT NICHT
09.03.2006 21:53:16
thomas_d
Hi
Ja danke für das file. Das funzt so wie ich es haben will.
Bei meinem geht es aber immer noch nicht
Ich weiß nicht was ich gemacht hab auf einmal ging es und jetzt geht es wieder nicht...
das hat so keinen sinn
Unter:
https://www.herber.de/bbs/user/31770.xls
kannst dir das File runterladen.
Öffne das VB Fenster, mach Variable a10 Überwachen und geh zurück ins ecxel file.
Dort klickst du den Button "Daten Erkennung aktivieren an" und suchst dir nun einen ordner aus in dem Files drin sind. Völlig egal was für welche. Allerdings nicht mehr als 100 stück.
Dann sollte jetzt unter "Unbekannte Daten" die Files vom angegeben Ordner drin stehen mit Checkbox.
a10 ist jetzt die Anzahl der "Unbekannten Files".
Mit Command Button3 soll jetzt a10 in "C3" geschrieben werden. Wie du bemerken wirst ist die jetzt auf einmal 0
Keine Ahnung wieso.
Bitte nicht meckern über die schlechte Programmierung. Ist alles noch im Teststadium.
Leider hab ich Idiot mit der Deklaration ziemlich geschlammpt und jetzt hab ich den Salat.
Schaus dir mal an. Vielleicht kommst du ja drauf.
Echt tausend Dank für deine Mühen.
gruß
Thomas
P.S. Bin übers WE weg. kanns mir also erst am Montag anschaun.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige