Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1488to1492
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
Inhaltsverzeichnis

Verschachtelte For-Schleife

Verschachtelte For-Schleife
15.04.2016 15:42:35
Jasmin
Hallo ihr,
ich brauche mal wieder eure Hilfe in VBA, habe mir schon den ganzen Tag den Kopf zerborchen, aber weiß nicht wie ich das anstelle.
Ich habe in Tabellenblatt 1 eine Spalte mit Werten. Diese sollen in ein anderes Tabellenblatt (bspw. Tabellenblatt 2) eingetragen werden.
Dies soll allerdings nicht 1:1 ablaufen sondern. Der Wert der Zelle 1 aus Tabellenblatt 1 soll 24 mal eingetragen werden. Dann soll Zelle 2 24 mal eingetragen werden... und so weiter....
Ich habe es schon mal verschachtelten For-schleifen versucht. Die funktioniert aber nicht so wie ich das möchte.
Vielen Dank für eure Hilfe,
Jasmin

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Verschachtelte For-Schleife
15.04.2016 15:49:07
ChrisL
Hi Jasmin
Schleife in Schleife ginge auch, aber kannst es dir auch "errechnen":
Sub t()
Dim WS1 As Worksheet, WS2 As Worksheet
Dim i As Long
Set WS1 = Worksheets("Tabelle1")
Set WS2 = Worksheets("Tabelle2")
For i = 1 To WS1.Cells(WS1.Rows.Count, 1).End(xlUp).Row
WS2.Range(WS2.Cells(((i - 1) * 24) + 1, 1), WS2.Cells(((i - 1) * 24) + 24, 1)) _
= WS1.Cells(i, 1)
Next i
End Sub
cu
Chris

AW: Verschachtelte For-Schleife
15.04.2016 15:55:44
UweD
Hi
so?

Sub Mal24()
On Error GoTo Fehler
Dim TB1, TB2, i&
Dim SP%, ZE%, LR1&, LR2&
Application.ScreenUpdating = False
Set TB1 = Sheets("Tabelle1")
Set TB2 = Sheets("Tabelle2")
SP = 1 'Spalte A
ZE = 1 'ab Zeile
LR1 = TB1.Cells(Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte
For i = ZE To LR1
With TB2
LR2 = IIf(.Cells(1, SP) = "", 1, .Cells(Rows.Count, SP).End(xlUp).Row + 1)
.Range(.Cells(LR2, SP), .Cells(LR2 + 23, SP)) = TB1.Cells(i, SP)
End With
Next
Fehler:
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & vbLf & Err.Description: Err.Clear
End Sub

Gruß UweD

Anzeige
AW: Verschachtelte For-Schleife
15.04.2016 16:20:25
Jasmin
Hallo ihr beiden,
danke schonmal für eure Rückmeldung.
@UweD: Was bedeutet diese Spalte: LR2 = IIf(.Cells(1, SP) = "", 1, .Cells(Rows.Count, SP).End(xlUp).Row + 1)
Sprich was wird da gemacht?
Muss das ganze leider ein bisschen umschreiben, da ich eigentlich mit Arrays arbeite.
Danke schonmal :)
Gruß,
Jasmin

AW: Verschachtelte For-Schleife
16.04.2016 07:59:58
ChrisL
Hi Jasmin
Es wird die letzte freie Zeile in Spalte A ermittelt, was eigentlich mit
.Cells(Rows.Count, SP).End(xlUp).Row + 1
funktioniert. Wenn aber noch gar keine Werte drin sind, dann liefert die Zeile 2 statt 1. Darum If-Then Abrage: Wenn erste Zelle leer, dann 1 sonst letzte Zeile (gemäss oben).
In Zusammenhang mit Array brauchst du die Zeile kaum. Stattdessen redimensionierst du deine Array an dieser Stelle (Redim Preserve).
cu
Chris
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige