Mehre Daten in Speicher laden und ausgeben ?

Hallo

Mich würde interessieren ob es möglich ist Daten in der X und Y Achse einzulesen (z.B. mit For…Next). Und Anschliessend wieder als ganzes auszugeben.
Müsste doch mit der Array Funktion klappen ?

Bsp: A5:E5

Hätte mir so was vorgestellt.

Sub tt()
Dim i as Integer, k as Integer
Dim Daten(5,5)

For i = 0 To 4
For k = 1 To 5
Daten = Worksheet(xxx).Cells(1,k + i)
Next k
Next i

Worksheet(xxx).Cells(10,1) = Daten

End Sub

Danke
Lanzma

Mich würde interessieren ob es möglich ist Daten in der X und
Y Achse einzulesen (z.B. mit For…Next). Und Anschliessend
wieder als ganzes auszugeben.

Hallo Lanzma,

Daten(5, 5) hat bei Standardeinstellungen 36 Elemente.
Mal zwei Vorgehensweisen:

Option Explicit
'
Sub tt()
Dim Daten
With Worksheets("Tabelle1")
 Daten = .Range("A1:E5")
 .Range("B7:F11") = Daten
 .Range("C13:G17") = Application.Transpose(Daten)
End With
End Sub
'
Sub tt2()
Dim Daten(4, 4), Zei, Spa
With Worksheets("Tabelle1")
 For Zei = 0 To 4
 For Spa = 0 To 4
 Daten(Zei, Spa) = .Cells(Zei + 1, Spa + 1).Value
 Next Spa
 Next Zei
 For Zei = 0 To 4
 For Spa = 0 To 4
 .Cells(Zei + 19, Spa + 1).Value = Daten(Zei, Spa)
 Next Spa
 Next Zei
End With
End Sub

Gruß
Reinhard

Vorher A1:E5 mit Daten füllen. o.w.T.

Hallo Reinhard

Vielen dank für die Lösungsansätze, Lösung 2 finde ich super… ich werde mal damit rumspielen.

Kann man festlegen wie die Daten in den Speicher kommen. Ich mein ich
lese A1:A3 ein will sie aber als A1:C3 ausgeben ? F

Lanzma

Hallo Lanzma,

Vielen dank für die Lösungsansätze,

gerne.

Kann man festlegen wie die Daten in den Speicher kommen. Ich
mein ich
lese A1:A3 ein will sie aber als A1:C3 ausgeben ? F

hmmh, m.E. solltest du mehr auf die Elemtent/zell Anzahlen achten.

A1:A3 (3 Zellen) kannste locker mit normalem Kopieren nach A1:C3 (9 Zellen) kopieren. Die drei Zellen werden halt dreimal wiederholt.

versuchst du die drei Zellen in/nach acht Zellen zu kopieren gibt es einen Fehler.

Mir ist leider noch völlig unklar was du eigentlich vorhast, Array hin oder her.

Gruß
Reinhard

Hi Reinhard

Ich möchte probieren mit Hilfe von Schleifen Daten (die an verschieden Orten liegen) in den Speichern zu kopieren. Und anschliessend in einen anderen Ort wieder einfügen.

A1:A3 sollen kopiert werden, dann soll B1:K1 kopiert werden, wobei ich dann noch eine varibale „Zei“ habe, die Zeilen dazu zählen kann. Das heisst es kann auch B1:K5 sein.

Anschliessend sollen die A1:A3 Daten in A10:C10 und die B1:K1 Daten in
D10:M10 kopiert werden. Auch hier soll es möglich sein wenn mehr Daten vorhanden sind (sprich „Zei“) einzufügen. A10:C10 soll aber über die Zeilen gleich bleiben

Also eine Richtungsäanderung im A1:A3 fall von y- zur x-Achse.

Gruss

Das Problem dass ich habe, ist nicht der Code sondern das Verständnis mit dem Array im Arbeitsspeicher:

Folgender Code funkioniert, aber läuft nur für eine Zeile z.B.(B1:K1) sobald ich eine weitere Zeilen mit Input habe klappt es nicht mehr… er fügt immer nur die erste oder letzte Zeile ein:

Sub tt()
Dim etc. das ist ja klar

z = 1
Do Until 'Bedingung
For i = 0 To 2
WertA = .Cells(i + 1, 1).Value '(A1:A3)
DataA(xA, yA) = WertA
Next i

For i = 1 To 10
WertB = .Cells(z, i + 1).Value ' (B1:K1)
DataB(xB, yB) = WertB
Next i

z = z + 1
Loop

kEnd = 'Bedingung

a = 10

For k = 0 To kEnd
For i = 0 To 2
Cells(a, i + 1) = DataA 'A10:C10
Next i

For i = 1 To 10
.Cells(a, i + 3) = DataB 'D10:N10
Next i
Next kEnd


a = a + 1 'Für die nächste Zeile.. falls Bed. erfüllt

Ich hoffe es wird verstanden was ich meine. Wie funktioniertdas mir

 eigentlich genau.. klappt irgendwie nicht in der Vorschau !!

Hallo Grußlose®,

Das Problem dass ich habe, ist nicht der Code sondern das
Verständnis mit dem Array im Arbeitsspeicher:

aha.

Folgender Code funkioniert,

Glaub ich nicht, schick mal kompletten Code.

aber läuft nur für eine Zeile
z.B.(B1:K1) sobald ich eine weitere Zeilen mit Input habe
klappt es nicht mehr… er fügt immer nur die erste oder letzte
Zeile ein:

Input? Klingt irgendwie nach Inputbox, mir unklar was du meinst.
Wo ist da ein Input wenn du den Code auf mehrere Zeilen erweiterst?

Irgendwie blick ich gar nicht was du möchtest :frowning:

Zum „pre“, schreibe in der Zeile über dem Code

Und nach dem Code

Beides ohne Leerzeichen dazwischen.

Gruß
Reinhard

hehe… ok ! Mit anderen Worten und erstmal 1D Array :wink:

Ich verstehe nicht, wieso ich keine Ausgabe bekomme, also die Daten
in Zelle(1,2).

Sub tt()

Dim i As Integer
Dim List(4)
Dim Info

For i = 1 To 3
 Info = Worksheets("sheet1").Cells(i, 1)
 List(i) = Info
Next i

Worksheets("sheet1").Cells(1, 2) = List(i)

End Sub

Hallo Lanzma,

Ich verstehe nicht, wieso ich keine Ausgabe bekomme, also die
Daten in Zelle(1,2).

ich schon :smile:

Ich weiß nicht was der Umweg über „Info“ soll.
Aber du befüllst List(1) bis List(3) mit den Werten aus A1 bis A3.
In B1 schreibst du dann List(4), und da steht nix drin.

Gruß
Reinhard

ich schon :smile:

na toll :wink:

Ich weiß nicht was der Umweg über „Info“ soll.

Das wäre eine Variable für später dann mal :smile:

Aber du befüllst List(1) bis List(3) mit den Werten aus A1 bis A3.
In B1 schreibst du dann List(4), und da steht nix drin.

Aha, jetzt kam der Klick… Du wieder… man muss sich in letzter Zeit alles selber erarbeiten :smile:

Aber so gehts :smile:
Sub tt()

Dim i As Integer
Dim List(4)
Dim Info

For i = 1 To 3
List(i) = Worksheets(„sheet1“).Cells(i, 1)
Next i

For i = 1 To 3
Worksheets(„sheet1“).Cells(i, 2) = List(i)
Next i
End Sub

Gruss & Dank
Lanzma