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

117 Variablen

117 Variablen
21.09.2004 14:43:42
Kiwmusic
Hallo zusammen!
@first erst einmal Herzlichen Dank an Nepomuk, der mir beim letzten Mal super geholfen hat. (Thread: Datei von A nach B kopieren).
Durch die Teilname am Forum hier lerne ich wirklich viel, was Excel und VBE angeht...
Jetzt aber wieder zurück zu Problemen...
Ich habe folgendes: 117 Globale Variablen, die ich innerhalb einer Prozedur mit Werten aus einer Zeile einer Tabelle füllen will. (ja, ich brauche sie alle!) Alle haben unterschiedliche Namen.
Ausgewählt ist die erste Zelle einer Zeile.
Bisher habe ich das so gelöst:
Variable1 = ActiveCell.Offset(0,1).Value (oder .Text)
Variable2 = ActiveCell.Offset(0,2).Value (oder .Text)
etc....
Gibt es eine Möglichkeit das abzukürzen?
Ich habe es versucht mit einer Schleife, die die Variablennamen aus einer Tabelle einliesst und den entsprechenden Offset, aber das funktioniert nicht.
Ich kann ja nicht eine Variable mit einem Namen einer Variablen füllen und dann erwarten, dass VBE dann weiß, dass ich die Variable meine...
Irgendwo mache ich einen Denkfehler... Oder muss ich wirklich den Weg zu fuß gehen und jeder Variable den Wert aus der TabellenZelle mitteilen.
Ich träume es eher so zu tun: Variable und Wert werden jeweils aus einer separaten Quelle einer Tabelle benannt und einander zugeordnet. Geht so was?
Das ganze passiert in einer Schleife...(For ..Next)
Wenn es nicht geht...muss ich es eben zu Fuß tun...
Über hilfe wäre ich froh...
Danke!
Kiwi

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 117 Variablen
21.09.2004 15:07:05
Alex
Kannst du nicht einfach ne Feldvariable nehmen?
und dann mit
for i = 1 to 117
variable(i)=cells(1,i).value
next i
AW: 117 Variablen
21.09.2004 15:16:04
Kiwimusic
Hi Alex!
Wenn du mir noch verrätst, was eine Feldvariable ist?
Sorry, dass ich so blöd Frage aber im Moment bin ich noch ziemlich am lernen.
ISt dass ein Array, den ich dann mit werten befülle?
Oder macht er mir damit immer wieder eine neue Variable.
Wir kann ich denn dann die Werte der Variablen wieder abrufen...
:-?
Kiwi
AW: 117 Variablen
21.09.2004 15:12:32
Ingolf
Hallo Kiwi,
warum verwendest du nicht ein Datenfeld anstelle von 117 Variablen mit unterschiedlichen Namen? Das könnte dann etwa so aussehen:
Dim Daten(118) As Double, i As Integer
For i = 1 To 117
Daten(i)= ActiveCell.Offset(0,i).Value
Next i
Gruß Ingolf
Anzeige
AW: 117 Variablen
21.09.2004 15:25:56
Kiwimusic
Hi Ingolf/Alex!
So langsam verstehe ich...
Wenn die Daten dann in dem Datenfeld drinstehen...
Wie kann ich dann die werte aus dem Datenfeld wieder auslesen?
Muss ich dann irgendwie die Position des Wertes angeben?
Ein Beispiel über den Wert aus Feld 10 wäre hilfreich...
:-?
Kiwi
AW: 117 Variablen
21.09.2004 15:33:12
Ingolf
Hallo Kiwi,
wenn wir mal von meinem Beispiel ausgehen, dann befindet sich der Wert aus der Zelle, die sich 10 Zellen (Spalten) rechts von der aktuellen Zelle befindet in der Variablen Daten(10). Der Vorteil ist jetzt eben, dass sich das Ganze jetzt numerisch ansprechen läßt (Daten(1) bis Daten(117) und somit in einer For...Next-Schleife oder so verarbeitet werden kann.
Gruß Ingolf
Anzeige
AW: 117 Variablen
21.09.2004 15:46:20
Kiwimusic
Hi Ingolf!
Ich habe es ausprobiert, wie du das mnir beschrieben hast.
Ja, ist im Prinzip super!
Würde auch gehen, wenn ich hier nicht folgende Meldung bekommen würde:
"Typen Unverträglich."
In der Zeile sind in jeder Zeller abwechselnd Texte, Währungen, URLs etc... vorhanden.
Aber ich habe es dann selbst herausgefunden: Ich habe Daten(118) als Variant definiert und schon geht es!
Also hier nochmal die Syntax, mit der ich an jeder Beliebigen Stelle diese Daten auslesen kann:

Sub HoleWerteNeu()
'Richtiges Blatt/Zellposition auswählen:
If ActiveSheet.Name <> "Ablaufplan" Then Sheets("Ablaufplan").Select
If ActiveCell.Row < 5 Then Cells(5, 1).Select
'Hier geht es los mit der Feldvariablen:
r = ActiveCell.Row
Dim Daten(118) As Variant, i As Integer
For i = 1 To 117
Daten(i) = ActiveCell.Offset(0, i).Text
Next i
'Ausgabe von Teilergebnissen:
MsgBox Daten(1) & Daten(2)
End Sub

Vielen Dank Ingolf und Alex!
Letztendlich war der Lernerfolg riesig für mich.
Das verändert komplett die Sichtweise auf meine angefangenen Projekte :-)

Vielen Dank!
Kiwi
Anzeige
AW: 117 Variablen
21.09.2004 18:51:39
PeterW
Hallo Kiwi,
ein Hinweis zum Code: wenn die aktive Zelle in Ablaufplan in Spalte EJ und höher ist erhältst du einen Fehler, da es nicht mehr als 256 Spalten gibt (Spalte EJ ist Spalte 140 da gibt es keinen Offset 117 mehr).
Gestattet sei auch der Hinweis, dass es in VBA fast immer ohne Select und Activate geht. Beschreib doch mal das konkrete Problem. Bis dahin lege ich dir dies nahe:
https://www.herber.de/xlfaq/xlbasics/main_sel.htm
Gruß
Peter

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige