Zuweisung nicht einmalig sondern Pointer ähnlich?

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
ListBox TextBox


Excel-Version: Alle Versionen
nach unten

Betrifft: Zuweisung nicht einmalig sondern Pointer ähnlich?
von: Ruben
Geschrieben am: 05.07.2002 - 10:35:48

Hi!

Ich hab bisher noch nicht viel mit Excel gemacht und hab nur Erfahrungen mit anderen Programmiersprachen, deswegen häng ich hier an einer Stelle:

Eine Prozedur (ist im Prinzip egal ob jetzt ComboBox_Click oder _Change oder was auch immer) weist einer bestimmten Textbox (Oder auch einer Excel Zelle) den Wert einer Variablen oder den Wert oder Zelle zu, etwa wie hier:

Dim Leitmat as String

Private Sub ComboBox3_Click()
Leitmat = ComboBox3.Value
TextBox7.Value = Leitmat
(Oder: Worksheets("Irgendwas").Range("A1") = ComboBox3.Value)
End Sub

"Mein" Problem ist das Logische Verständnis dieser Zuweisung. Denn hier wird nicht nur einmalig beim Funktionsaufrufen (Also ComboBox3_Click) der Wert an die Variable oder Zelle übergeben, sonder anscheinend wird eine Art Pointer gesetzt, sodass die Variable von nun an IMMER den aktuellen Wert der anfänglich zugewiesenen Variable erhält. Und das macht mir etwas zu schaffen, weil sowas hab ich bisher nur bei VBA Excel erlebt :)

Gibt es vielleicht einen Weg, wie ich eine Zuweisung einmalig festlegen kann, damit sich in meinem Fall der Inhalt von TextBox7 tatsächlich nur dann ändert, wenn die Prozedur ComboBox3_Click aufgerufen wird, (und nicht wenn die Variable Leitmat zwischenzeitlich geändert wird) ??

Ich hoffe ihr versteht mein Problem, oder vielleicht bin ich einfach nur zu blöd und das kann man auf andere Weise ganz einfach lösen?

Ciao
Ruben


nach oben   nach unten

Re: Zuweisung nicht einmalig sondern Pointer ähnlich?
von: Holger Levetzow
Geschrieben am: 05.07.2002 - 10:49:28

ich denke, du siehst Probleme, die es nicht gibt. Beim Klicken wird
Leitmat = ComboBox3.Value
TextBox7.Value = Leitmat
also der TextBox7 der Wert aus ComboBox3 zugewiesen. Mehr macht das nicht. Erst beim nächsten Klicken wird der dann auktuelle Wert zugewiesen.
Holger

nach oben   nach unten

Re: Zuweisung nicht einmalig sondern Pointer ähnlich?
von: Josef_I
Geschrieben am: 05.07.2002 - 10:49:59

So wie Sie Leitmat definiert haben, steht sie jeder Sub in dem betreffenden Modul zur Verfügung, und wird auch von dort geändert. Ziehen Sie die DIM Anweisung in die Sub, dann gilt sie nur dort.

Private Sub ComboBox3_Click()
Dim Leitmat as String


nach oben   nach unten

Leider nicht, sondern:
von: Ruben
Geschrieben am: 05.07.2002 - 11:01:11

Ja, so sollte es meinem logischen Verständnis nach sein, aber das Problem ist, wenn ich die Variable Leitmat (Auch wenn ich sie IN der Prozedur definiere) durch beispielsweise eine andere ComboBox ändere, dann ändert sich dann auch TextBox7.Value, obwohl diese Zuweiseung in der anderen Prozedur steht, sie ist anscheinend die ganze Zeit aktiv (Wie eben ein Pointer auf eine bestimmte Speicheradresse, falls euch das was sagt)

nach oben   nach unten

Definition ist nicht das Problem
von: Ruben
Geschrieben am: 05.07.2002 - 11:05:18

Ich habe Leitmat in meinem Prgramm in einer anderen ComboBox definiert, daran liegt es nicht, war hier nur zur Anschauung.
Das Problem ist, das die Zuweisung TextBox7.Value = Leitmat eben immer aktiv ist, auch wenn die Prozedur in der die Zuweisung steht nicht aktiviert wird.

Normalerweise dürfte TextBox7 ja nur den Wert von Leitmat annehmen, wenn man ComboBox3 anklickt, das tut es aber nicht, sondern es ändert seinen Wert immer wenn sich Leitmat7 ändert, also keine wirkliche Zuweisung sondern eine Verknüpfung (oder eben Pointer Zuweisung)


nach oben   nach unten

Re: Leider nicht, sondern:
von: Holger Levetzow
Geschrieben am: 05.07.2002 - 11:11:25

schicke die Datei einfach mal rüber.
Holger

nach oben   nach unten

Re: Zuweisung nicht einmalig sondern Pointer ähnlich?
von: Michael Scheffler
Geschrieben am: 05.07.2002 - 11:59:40

Hallo,

das Problem ist IMHO die "Click"-Prozedur. Für eine ComboBox ist das Standard-Ereignis nicht "Click" sondern "Change".

Wenn Du das entsprechend änderst, sollte es wohl gehen. Das von Dir beschriebene Verhalten habe ich mit "Change" noch nicht erlebt.

Gruß

Micha


nach oben   nach unten

Mit Change das gleich
von: Ruben
Geschrieben am: 05.07.2002 - 12:46:18

Leider nicht, hab das ganze auf Change geändert: Genau das gleiche. Existiert zwischen Change und Click überhaupt ein Unterschied? Jedenfalls ist es in diesem Fall nicht die Ursache.

Ich kann dir das ganze auch mal schicken, wenn du dir das Phänomän mal ansehen willst... :)

nach oben   nach unten

Re: Mit Change das gleich
von: Michael Scheffler
Geschrieben am: 05.07.2002 - 13:02:15

Klar,

schick mal.

Gruß

Micha


nach oben   nach unten

Re: Mit Change das gleich
von: Michael Scheffler
Geschrieben am: 05.07.2002 - 13:03:36

Klar ist ein Unterschied zwischen "Click" und "Change". Letztres reagiert nur dann, wenn ein Wert verändert wured, sich also Value bzw. Text der Combo- oder Listbox ändert!

nach oben   nach unten

Schicken?
von: Ruben
Geschrieben am: 05.07.2002 - 13:30:14

Hi, ich wollts dir grad schicken, aber irgendwie kommt die mail zurück und sag host ima.dresden.de unknown?

nach oben   nach unten

Re: Schicken?
von: Michael Scheffler
Geschrieben am: 05.07.2002 - 13:52:33

Hallo,

scheffle@ima-dresden.de

Sorry

Micha


 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Zuweisung nicht einmalig sondern Pointer ähnlich?"