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

Einfache Wertzuweisung?

Einfache Wertzuweisung?
05.11.2003 16:46:44
Frank
Hallo,

ich habe ein Tabellenblatt mit 6 Blöcken von wiederkehrenden Daten:

Menge1, Bezeichnung1, Anzahl1, Preis1,...
...
Menge6, Bezeichnung6, Anzahl6, Preis6,...

Der Einfachheit halber habe ich die Zellen, in denen die Daten stehen, mit gleichlautenden Namen versehen.

Jetzt möchte ich die Inhalte dieser Zellen in entsprechende Arrays einlesen:

Dim mengen(6) as Integer
mengen(1) = Range("Menge1").Value
...
mengen(6) = Range("Menge6").Value
[analog für Bezeichnung,...]

Anschließend muß ich die Werte aus diesen Variablen zu einem String konkatenieren. (also Wert aus Menge1,Wert aus Bezeichnung1,... hintereinander weg).

Das wird natürlich auf die Dauer etwas lästig, wenn man für jedes Array 6 Zeilen Zuweisung braucht. Im Moment hab ich grad einen Aussetzer: Es gibt doch da bestimmt eine schnellere Lösung, oder?

Danke im Voraus!

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Einfache Wertzuweisung?
05.11.2003 17:49:21
Tino Schaltke
Hi,

versuch mal dies hier (ist aber nicht getestet)


Sub proggy()
dim x as integer, y as integer
dim mengen(6) as integer, bezeichnung(6) as string '(usw)
dim xstring(6) as string 'der komplette String
dim pre as variant
pre = array("Menge", "Bezeichnung", "Anzahl", "Preis", "...") 'Deine Felder OHNE Zahl
for x = 1 to ubound(pre-1) '... oder Anzahl Felder hier eintragen)
for y = 1 to 6
mengen(y) = range(pre(x-1) & y).value
bezeichnung(y) = range(pre(x-1) & y).value
'... hier dann noch Anzahl, Preis, usw. wie oben
next y
next x
for y = 1 to 6
xstring(y) = mengen(y) & bezeichnung(y) '& ... die weiteren Felder
next y
End Sub


Ist mal ein kleiner Ansatz...
Gruß
Tino
Anzeige
AW: Einfache Wertzuweisung?
06.11.2003 09:20:31
Frank
Hallo Tino,

erstmal danke für den Lösungsansatz. Wenn ich allerdings das Script so nehme wie von Dir aufgeschrieben, wird im ersten Durchlauf der Wert von "mengen(1)" den Variablen "partnumber(1)" und "bezeichnung(1)" zugewiesen, beim zweiten Durchlauf dann entsprechend denen mit Suffix 2 usw., was natürlich falsch ist...

Ich hab das ganze wie folgt abgeändert:

Option Base 1

Sub proggy()
Dim mengen(6) As Integer
Dim partnumber(6) As String
Dim bezeichnung(6) As String '
Dim pre As Variant
Dim y%
pre = Array("Menge", "Teilenummer", "Bezeichnung", " ... ")    'Die Felder OHNE Zahl
For y = 1 To 6
mengen(y) = Range(pre(1) & y).Value
partnumber(y) = Range(pre(2) & y).Value
bezeichnung(y) = Range(pre(3) & y).Value
' die restlichen Felder analog
Next y
' später das Zusammensetzen
End Sub


Vielleicht gibt es noch ne Möglichkeit, das ganze nochmals zu verkürzen, aber vom Prinzip her reicht das schon so aus. Vielen Dank!!

Frank
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige