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 
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 
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 
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 
na toll 
Ich weiß nicht was der Umweg über „Info“ soll.
Das wäre eine Variable für später dann mal 
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 
Aber so gehts 
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