Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1420to1424
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
Inhaltsverzeichnis

Const variabel aufrufen

Const variabel aufrufen
10.04.2015 12:16:13
Franz
Hallo Fachleute,
ich hab ne Frage, die vielleicht für viele dumm sein mag, aber ich weiß das noch nicht (und vielleicht geht es ja auch gar nicht..?):
Ich möchte verschiedene Const-deklarierte variabel aufrufen:
Sub test
Dim btCL_Indiv As Byte
Const strIndiv1 As String = "kw"
Const strIndiv6 As String = "dat"
Const strIndiv7 As String = "act"
btCL_Indiv = 1
msgbox strIndiv & btCL_Indiv
End Sub
Bei diesem Versuch gibt es eine Fehlermeldung. Gibt es eine Möglichkeit, das zu lösen? Oder geht das von vornherein nicht?
Danke schonmal und Grüße
Franz

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Const variabel aufrufen
10.04.2015 12:59:08
Franz
Hallo Nepumuk,
Wahnsinn, mal schnell aus dem Ärmel gezaubert?
Vielen Dank für diese Lösung, in Deiner Datei funktioniert's auch. Wenn ich das in meine Datei übertrage, krieg ich ne Fehlermeldung:
Unterlegt ist "objConstClass As clsConst" und es kommt die Meldung: Fehler beim Kompilieren: Benutzerdefinierter Typ nicht definiert"
Mach ich noch was falsch? Oder kann es daran liegen, dass das Makro im Modul eines Sheets läuft?
Grüße
Franz

Anzeige
AW: Const variabel aufrufen
10.04.2015 13:05:09
Nepumuk
Hallo,
das ist der Name des Klassenmoduls. Das kannst du im Eigenschaftsfenster umbenennen. Deines hat noch den Namen "Klasse1".
Gruß
Nepumuk

AW: Const variabel aufrufen
10.04.2015 13:10:33
Franz
Hallo Nepumuk,
danke, jetzt hab ich das auch kapiert. Hatte noch nie Klassen im Einsatz bislang.
Danke für die tolle Lösung und Grüße
Franz

AW: Const variabel aufrufen
10.04.2015 13:07:38
Daniel
HI
der Aufwand deinen Wunsch 1:1 umzusetzen scheint mir doch recht gross.
einfacher ist hier wahrscheinlich die Verwendung eines eindimensionalen Arrays, bzw eines Dictionarys (eindimensionales Array mit einem Freitext-Index)
dim btCL_Indiv as Byte
dim dic as Object
set dic = CreateObject("Scripting.Dictionary")
dic("strIndiv1") = "kw"
dic("strIndiv6") = "dat"
dic("strIndiv7") = "act"
btCL_Indiv = 1
Msgbox dic("strIndiv" & btCL_Indiv)
Gruß Daniel

Anzeige
AW: Const variabel aufrufen
10.04.2015 13:24:18
Nepumuk
Hallo,
das ist das selbe wie eine Klasse nur in einer "fremden" DLL.
Gruß
Nepumuk

AW: Const variabel aufrufen
10.04.2015 13:39:36
Daniel
Das ist mir als Anwender eigentlich egal.
ich muss keine neue Klasse oder sonstwas anlegen und auf die Benennung von irgendwelchen Modulen achten.
Ich kann das Dictionary wie ein normales Array anlegen und verwenden, nur dass der Index nicht durch eine Ganzzahlfolge gebildet wird, sondern ein Freitext sein kann.
deswegen einfacher.
Gruß Daniel

Danke Daniel, ...
10.04.2015 14:11:49
Franz
ich werd auch Deine Lösung durchspielen und sie mir auf jeden Fall mal aufheben. Und Du hast recht, es ist leichter zu durchschauen - auch wenn ich Nepumuks Lösung mittlerweile 2 Mal umsetzen konnte (im selben Makro - natürlich jetzt mit 2 Klassenmodulen........ :-)))
Grüße
Franz

Anzeige
oder per Collection. owT
10.04.2015 14:57:53
Rudi

Wenn du die Konstanten bei Workbook-Start ...
10.04.2015 15:04:07
Luc:-?
…in Public-Variablen des Workbooks einliest, Franz,
und diesem einen eindeutig-individuellen neuen CodeNamen gibst, kannst du das Gleiche wie Nepumuk machen, ohne ein extra Klassenmodul anzulegen. Der Unterschied besteht eigentlich nur darin, dass in Dokument­Klassen­Modulen wie dem der Mappe keine öffentlichen Konstanten deklariert wdn dürfen, weshalb dieser kleine Umweg erforderlich wird.
Die NeuVergabe eines CodeNamens ist ohnehin anzuraten, falls auf die Prozeduren u/o Variablen einer Mappe von einer anderen aus zugegriffen wdn soll, damit sich die QuellMappe per VBE-Verweis in die Programmier-Umgebung der 2.Mappe einbinden lässt, was mit dem StandardNamen genausowenig möglich wäre wie die zuvor beschriebene Aktion.
Gruß, Luc :-?

Anzeige
Jetzt raucht mir aber der Kopf.....
10.04.2015 15:59:35
Franz
...... Ihr lieben Helfer,
da ist ne Menge Neues drin, das ich erst mal kapieren und lernen muss. Ich werd's aber (geht nur heute nicht mehr) auf jeden Fall mal umzusetzen versuchen.
Vielen Dank für Eure Hilfen
Grüße
Franz

Ergänzung: Letztendlich macht Nepumuk ...
10.04.2015 16:36:07
Luc:-?
…auch nichts anderes als ich, Franz,
nur in einem extra Klassenmodul. Er vereinbart auch nichtöffentliche Konstanten, die in Variablen eingetragen wdn, weil die Beschränkung auf nichtöffentliche Konstanten für alle ObjektModule (KlassenModule) gilt. Selbst die Umbenennung des KlassenModuls ist mit dabei… ;-)
Lass erst mal abrauchen…! ;-)
Luc :-?
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige