# einer Public Const einmalig eine Variable zuweisen? (trotz Konstante?)



## serix (24. März 2009)

Hallo,

Momentan sieht das so aus:

```
Public Const Monatname$ = "März"
```

Jetzt soll aber im Prinzip "März" nicht einfach so in den VBA geschrieben werden sondern:


```
monat = "März"
Public Const Monatname$ = monat
```

Dies muss auch nur einmal beim Start der Datei passieren und wird dann vorerst nicht mehr geändert.

Weiß jemand eine Lösung wie ich also einer Const trotzdem eine Variable einmalig zuordnen kann?


----------



## DrSoong (24. März 2009)

Wie der Name schon sagt ist eine Konstante konstant, also fix und unabänderlich (zumindest im Code). Wenn man jetzt eine Variable benützen würde, wäre der Wert einer Konstante nicht mehr konstant sondern von der Variable abhängig, das widerspricht sich selbst und ist daher auch nicht erlaubt.


Der Doc!


----------



## serix (24. März 2009)

Kann man die Abhängigkeit irgendwie umgehen?

Könnte man der Variable nicht einen Wert zu weisen und diese Variable erst im Anschluss konstant setzen?

Meine Konstante muss nun leider mal Konstant bleiben ;-)


----------



## DrSoong (25. März 2009)

Eine Variable ist, wie der Name schon sagt variabel, da geht nichts mit konstant setzen. Es gibt nun mal diese Trennung und die lässt sich auch absolut nicht umgehen (sonst hätte die Trennung zwischen Konstanten und Variablen ja keinen Sinn).


Der Doc!


----------



## ronaldh (25. März 2009)

Und letztlich ist ja auch die Variabel so lange "konstant" (im Sinne von unverändert), wie sie nicht vom Programm geändert wird. 

Auch eine Variable ändert sich in der Regel (falls Du nicht gravierende Speicherfehler an Deinem Rechner hast) nicht von selbst wie durch Zauberhand, sondern in dem sie durch eine Programmanweisung geändert wird. 

Daher kann ich Dein Problem nicht erkennen.


----------



## Ein_Freund (25. März 2009)

Hallo serix,

wenn Du einmal einen Wert zuweisen möchtest, der anschliessend nicht mehr änderbar sein soll, könnte Dir ein ReadOnly-Property weiterhelfen.

Gruß aus Essen,


----------



## serix (7. Mai 2009)

Das Script dass hier entwickelt wurde ist nicht einfach nur ein Script, sondern wirklich gigantisch groß (25 VBA Module mit je ca. 4000 Zeilen Code, über 120 Tabellen mit bis zu 8000 Zeilen und Spalten bis IA). Ein Zusammenspiel aus mehreren Excel Dateien und PowerPoint. Daher ist es nicht möglich einfach aus einer Konstante etwas anderes zu machen. Es ist mir jedoch sehr leicht möglich eben dieser Konstante einen anderen Wert, momentan noch manuell, zu zuweisen.

Gibt es also keine Lösung dieser Konstante z.B. einen Wert, der in einer Exceltabelle steht einmalig zuzuweisen?


----------



## DrSoong (7. Mai 2009)

Kurz und Knapp?

*Nein!*

Sei jetzt nicht beleidigt, aber irgendwie willst du scheinbar die Lösung nicht akzeptieren. Wenn man 20-mal auf die gleiche Frage ein Nein bekommt, wird sich das nicht plötzlich mit der 21 Frage ändern (zumindest in einem Fall wie diesen hier).


Der Doc!


----------



## serix (10. Mai 2009)

DrSoong hat gesagt.:


> Kurz und Knapp?
> 
> *Nein!*
> 
> ...



Nun leider muss ich sagen, dass ich bei den Antworten die ich hier erhalten habe und so auch von Dir nicht das Gefühl hatte, dass man mich versteht bzw. das man sich mit dem Thema wie ein Experte auskennt!

Ich denke in meiner Fragestellung wurde deutlich, dass ich das Problem verstanden habe und suche nach irgendeiner, wenn auch Pfuschlösung. Jedoch waren die Antworten teilweise knapp am Thema vorbei und mir nicht genügend.

Wenn du nicht weiterweißt, wieso antwortest du dann? Würdest du zählen können, dann würdest du feststellen, dass ich diese Frage nicht 20 mal sondern wenige mal auf verschiedene Arten gestellt habe. 

Schade, sollte hier jemand weiterwissen, warte ich gerne auf eine Antwort.


----------



## DrSoong (10. Mai 2009)

serix, wenn du dir mal deine Frage durchliest, wirst du feststellen können, dass sie hier ausreichend und kompetent beantwortet wurde (ich nehm mal die Antwort von Ein_Freund hier besonders rein).

Wir sind nicht da, um irgendwie dein Problem zu erraten, deine Frage bedingt die Antwort. Wenn du z.B. dein Problem (Anzahl Dateien, Prozeduren, Schwierigkeiten, dabei, die Variable zu ändern) richtig beschreibst, kriegst du auch auf dieses Problem (unter Umständen, wenn sich eine akzeptable finden lässt) eine Antwort. Hier nur an der Antwort rumzumosern, weil wir dir nicht gleich die ganze Arbeit abnehmen, ist (zumindest für mich) inakzeptabel.

Zum Thema nicht wissen (ich nehm das mal als Inkompetentvorwurf mir gegenüber) rate ich dir, mal die Posts durchzusehen. Ich maße mir nicht an, allwissend zu sein, wenn aber nicht nur ich sondern auch andere dich auf die gleiche Lösung hinweise, finde ich, dass du das Problem bei dir suchen solltest statt auf stur zu schalten.

Wir sind nicht verpflichtet, dir zu helfen, das hier ist von allen rein freiwillig. Wenn du keine Hilfe annehmen willst (und so sieht es für mich aus), dann lass es.

Wenn du gewillt bist, uns zuzuhören und *MIT* uns eine Lösung zu finden, dann bleib nicht stur bei der einen Sache. Ein Problem lässt sich nicht nur von einer Seite angehen, reine Größe eines Projekts ist da noch lange kein Hindernis.


Der Doc!


----------



## serix (11. Mai 2009)

Ganz herzlichen Dank!

Vielen Dank auch für die Bemühungen.


----------

