Eingabe als Variablenname

  • Excel

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von FloFuchs.

    Eingabe als Variablenname

    Hola Freunde,

    ich würde gerne bei Excel die Eingabe aus einem Textfeld als Namen für eine Variable benutzen, aber irgendwie stehe ich da auf dem Schlauch.

    Folgender Code funktioniert nicht:



    Dim LoPneu.neuLoP.Value as LoP


    (LoPneu ist der Name des UserForm, neuLoP der Name vom Textfeld und LoP ist ein UDT)

    Danke für die Hilfe!

    Ilhan



    Edit by Dodo:
    -> Topic verschoben (Grundlagen => VBA)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Dodo“ ()

    Du kannst Variablen so wie du es vorhast nicht benennen. Allerdings gibt es eine Alternative. Schau dir mal die Dictionary-Klasse an:
    msdn.microsoft.com/de-de/library/xfhwa508.aspx

    Du könntest z. B. dein Problem so lösen:

    Visual Basic-Quellcode

    1. Dim Variablen As New Dictionary(Of String, String)
    2. Variablen.Add("Name der Variable", "Wert der Variable")


    EDIT: Sorry, das gepostete Beispiel ist nur für VB.Net, wie es unter VBA geht weiß ich nicht. Ich lasse es hier trotzdem mal stehen, denn es kann ja sein, dass du mit VB.Net auf Excel zugreifst.
    Hola,

    ich weiß das mit den Klassen, aber danke für den Tipp.

    Ich muss ein Projektverzeichnis aufbauen, bei dem man durch einen Tastenklick ein neues Projekt hinzufügen kann. Diese Projekte haben auch Unterprojekte, die wiederum Unterpunkte haben, und dass muss alles per Knopfdruck gemacht werden können. Dafür habe ich ein Typ Projekt erstellt und habe ein Projekte() Array, dass Elemente vom Typ Projekt speichert. Wenn der User auf den Button klickt, dann erscheint ein Fenster wo er den Namen des Projekts eintippt. Wenn er OK clickt, soll eine neue Variable vom Typ Projekt entstehen und genau diesen Namen haben, also bei jedem Klick wird eine neue Variable erstellt und dem Projekte() Array hinzugefügt. Dabei ist es halt wichtig, dass die Variable nach der User-Eingabe benannt wird.

    Gruß,

    Ilhan
    hmm aber dann wäre doch ne Klasse genau das richtige...
    Baust die klasse nach dem Projektbaum auf, den Du haben willst.
    und erstellst dann quasi jedesmal ein neues Element der Klasse mit dem Namen, den der Benutzer eingibt...
    Wie die Variable heißt, ist doch vollkommen egal... die Bekommt doch niemand zu gesicht! Oder seh ich da was falsch?
    Du erstellst ein neues Projekt, das bekommt dann Namen/ verzeichnis/ Unterstruktur/ whoatever.... da werden die Namen dann geschrieben...
    Wie du in deinem Programm die Variable nennst, der du das zum erstellen oder später um Lesen zuordnest is doch wurscht =)
    Das Problem ist aber, dass ein neues Projekt mit jedem Klick erstellt wird, d.h. dann hab ich vielleicht 20 Projekte, verstehste, und wenn ich die dann alle a nenne dann überschreib ich doch a mehrmals und das führt am Ziel vorbei.
    Nein, eigentlich nicht ;)
    Weil es wird ja immer nur ein Projekt zur selben Zeit erstellt!
    Un Wenn das fertig erstellt ist, ist die Variable a auch wieder frei um das nächste zu erstellen.

    gaaaaanz einfaches Beispiel...

    Visual Basic-Quellcode

    1. for i = 1 to 10
    2. set wb as new DeineKlasse
    3. wb.name = cstr(i)
    4. wb.ErstelleVerzeichnis
    5. wb.ErstelleDatei
    6. wb.MachWasAuchImmer
    7. next i

    es werden 10 Elemente vom Typ DeineKlasse erstellt, auf die kannst du später wieder mit dem sinnlosen Namen i(1...10) zugreifen...

    FloFuchs schrieb:


    gaaaaanz einfaches Beispiel...

    Visual Basic-Quellcode

    1. for i = 1 to 10
    2. set wb as new DeineKlasse
    3. wb.name = cstr(i)
    4. wb.ErstelleVerzeichnis
    5. wb.ErstelleDatei
    6. wb.MachWasAuchImmer
    7. next i

    es werden 10 Elemente vom Typ DeineKlasse erstellt, auf die kannst du später wieder mit dem sinnlosen Namen i(1...10) zugreifen...


    Uhhh da solltest du aber dein gaanz einfaches Beispiel noch mal kritisch reflektieren.

    LG
    Katmay
    was soll ich da reflektieren? Es is ein grober Aufbau um zu zeigen, dass er nich verschiedene Namen brauch!
    Das da noch einiges fehlt is auch klar... un eine entsprechende Klasse da sein muss die das kann was man will (das steht aber weiter oben) also...?
    Ich danke dir für die Hilfe! Vielen Dank!
    Aber dein Beispiel bringt mir rein gar nichts.

    Die Variablen müssen dynamisch erstellt werden, mit einem Mausklick des Benutzers und die Namen müssen dementsprechend zugeteilt werden. So wie du dir das vorstellst geht das nicht. Ich bin jetzt dazu übergegangen, Dictionaries zu benutzen, dass ist zwar ein wenig aufwendiger, aber funktioniert auf jeden fall.

    Trotzdem danke!

    Ilhan
    Hey... ich glaube entweder reden wir aneinander vorbei, oder ich versteh dein Problem nich ^^
    ICh hab dir da mal ein Beispiel dran gemacht, wie ich das seh un verstehe...
    Is natürlich einfach, da ich auch kein PLan hab was du unter Projekte verstehst.. klar is mir dass es etwas aufwendiger wie ein Worksheet is, aber es geht ja nur ums Prinzip... vielleicht kann ich ja auch noch was lernen.

    btw... wie der Name Variable schon sagt, lebt sie davon, daß sie variabel ist. Also nur ein Platzhalter für immer wieder was anderes ;) (im bereich ihres Typs)
    Feste Zuweisung wäre eine Konstante...
    Dateien