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

"kst1" -> kst1

"kst1" -> kst1
01.03.2003 00:16:37
TE
Äh, noch was:

wie kann ich den Inhalt einer Variablen a von Zeichenkette zu Wert ändern?
a = "kst1" zu b = kst1
muss doch irgendwie so aussehen:
b = GänseFüsschenWeg(a)

Heissen Dank

TE

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: "kst1" -> kst1
01.03.2003 00:28:11
PeterW

Hallo Thomas,

in Deinem Beispiel gibt es keine Chance. Es handelt sich um eine Zeichenkette und die wird immer eine Zeichenkette bleiben, ob mit oder ohne Anführungszeichen.

Gruß
Peter

Re: "kst1" -> kst1
01.03.2003 00:34:56
TE

Ja, hab gerade schon mit CStr und CVar und so rumexperimentiert - nüscht zu machen.
Da werde ich den Wert wohl ganz stumpf in eine Zelle einschreiben müssen und diese dann wieder auslesen.

Na ich probier mal

Danke Dir

TE

Re: "kst1" -> kst1
01.03.2003 00:38:46
TE

:-( , geht auch nich so richtig

Re: "kst1" -> kst1
01.03.2003 00:47:50
Jörg Gradert

Hallo TE
was willst Du denn erreichen?
kst1 ist doch erstmal ein Text, der hat doch keinen Wert.
Welchen Zahlenwert hättest Du denn für b=kst1 erwartet, wenn wenn die Wandlung geklappt hätte?

Ich verstehe die Aufgabenstellung nicht.

Gruß Jörg

Anzeige
Re: "kst1" -> kst1
01.03.2003 03:04:21
TE

Naja, ich bin schon ein wenig müde, sonst wäre ich gleich drauf gekommen:
also es gibt n Variablen im Code (momentan [kst1] bis [kst12]), die an der Stelle, über die wir jetzt reden, schon einen Inhalt haben, und mit jeder muss eine umfangreiche Anweisung ausgeführt werden.
Jetzt gibt`s ja Schleifen, und damit beim nächsten Schleifendurchlauf die nächste [kstx] genommen wird, habe ich versucht, einen Zähler an die Zeichenkette"kst" ranzuhängen, damit dann beim Durchlauf z.B.4 auch die Variable [kst4] benutzt wird, ich dann also eine Schleife überhaupt benutzen kann und nicht n x denselben Code untereinander habe. Den Wert dieses Zählers könnte ich zur Laufzeit bestimmen; damit könnte ich dann wirklich n Variablen (also beliebig viele oder eben genau so viele, wie ich gerade jetzt brauche) managen.

Klappt natürlich nicht.

Gelöst habe ich das jetzt mit FOR EACH kst IN ARRAY(kst1, kst2, ..., kst12)
Ich gebe der Lösung nur eine 2, da ich mich hiermit auf die maximal mögliche Anzahl von Variablen festlege, nämlich 12.
Eigentlich steht aber die Anzahl nicht wirklich fest - sollte dann doch mal ein LKW zur Flotte dazukommen (also eine weitere Kostenstelle kst eröffnet werden müssen), gibt es in der Tabelle, aus der heraus ich diese Kostenstellenauswertung hiermit mache, auch ein weiteres Kennzeichen - schon muss ich wieder im Code rumpopeln, um eine [kst13] einzufummeln.
Naja, ich lege ein wenig Reserve an, aber übertreiben kann man es auch nicht, sonst läuft es ja {n - vorhandene kst} mal umsonst durch.
Eigentlich ist es eher eine Programmierstil-frage. Meiner Auffassung nach muss ein gutes Makro unter allen erdenklichen Umständen funktionieren, und dazu gehört auch, keine prinzipiellen Beschränkungen einzubauen.

Zum selben Problem siehe auch https://www.herber.de/forum/messages/225323.html

hier gings darum, den Variablen [kstx] die Kennzeichen zuzuweisen, und zwar derart, dass beim Durchlauf nur soviele Variablen überhaupt belegt sind (nämlich mit den verschiedenen Kennzeichen), wie auch verschiedene Kennzeichen in dem aktuellen Abschnitt der Tabelle vertreten sind.
Schon bei diesem Mammut-Algorithmus musste ich zähneknirschend eine maximale Anzahl von Variablen akzeptieren:
For r = ZEfirstrow To lastrow
If Cells(r, 8).Text = ZEdat Then
rkst = Cells(r, 5).Text
If ksta = "" Then ksta = rkst
If kstb = "" And rkst <> ksta Then kstb = rkst
If kstc = "" And rkst <> ksta And rkst <> kstb Then kstc = rkst
If kstd = "" And rkst <> ksta And rkst <> kstb And rkst <> kstc Then kstd = rkst


usw


End If
Next r
Du kannst Dir vorstellen, dass die AND-Verknüpfungen in der IF-Zeile schnell länglich werden.

Naja, darf der Chef halt keinen neuen LKW kaufen.

Schlaf schön und herzlichen Dank

Thomas




Anzeige
Re: "kst1" -> kst1
01.03.2003 05:19:40
Jörg Gradert

Hallo Thomas,
ich kann leider nicht programmieren, aber schau dir doch mal im Basic Editor VBA Hilfe Suchbegriff "Matrix" und Unterbegriff "Verwenden von Datenfeldern" an.

Da steht in etwa, sowas: (Laienhaft erklärt)
Hallo Thomas, besser als 12 Variablen kst1 bis kst12 ist für dich eine Variable kst mit 12 darin enthaltenen Datenfeldern.

Sub Datenfeld_kst aufmachen()

'hält 12 Felder für kst bereit, erster Index=0 (11)=Obergrenze
Dim kst(11)as string

'Werte zuweisen
kst(0)="Text1"
kst(1)="Text2"
.
.
kst(11)="Text12"
End Sub

Damit kannst Du dann deine Schleife durchlaufen, oder?
Sub Schleife()
Dim i (11) as Integer
For i = 0 to 11 'i wie Index
Print kst(i) 'oder was Du sonst damit machen willst
End Sub

Hilft es dir weiter? Wie gesagt ich kann dir bei der Umsetzung nicht helfen, ich hab nur eine wage Vorstellung, wie es in etwa aussehen könnte.

Ich scheitere immer wieder an der Syntax, der richtigen Dimensionierung der Variablen und an Prozeduren die mit bestimmten Objekten nicht erlaubt sind, aber ich stecke voller guter Ideen.

Liebe Grüße Jörg

Anzeige
Re: "kst1" -> kst1
01.03.2003 10:58:58
TE

Guten Morgen Jörg,

genau das fiel mir dann im Bett auch noch ein: Dem verwendeten Datenfeld lässt sich doch zur Laufzeit eine Variable hinzufügen.
D.h. wenn ich einmal rausbekommen habe, wieviele kstx ich benötige (passiert vorher im Code), muss meine FOR EACH-Schleife ja gar nicht prinzipiell beschränkt sein.

Toll.

Gruss

TE

Re: "kst1" -> kst1
01.03.2003 13:35:27
gordon

Hallo Thomas,

falls nicht bereits erledigt, vielleicht hilft folgendes zum Verständnis...

Gruß
gordon

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige