Anzeige
Archiv - Navigation
1680to1684
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

Nächste Spalte nach 16 Zeilen,Nächstes Blatt ....

Nächste Spalte nach 16 Zeilen,Nächstes Blatt ....
15.03.2019 10:16:54
Curly
Hallo zusammen,
ich versuche gerade eine Liste mit Lagerorten einzulesen und diese dann "Blattweise" wieder auszugeben.
Und zwar habe ich 4 Spalten (A-D) mit je 16 Zeilen. Danach soll er wieder in Spalte A in Zeile 17 beginnen usw.
ich habe versucht mir auch schon einen Code zu basteln, allerdings hat er wohl noch ein paar Schwächen. Das Feld "A16" bleibt z.b. leer diese werte sind um 1 Spalte nach rechts verschoben...
in "B16"....
Das wäre mein Code..
Sub Lagerorte()
Dim LastRow As Long
Dim i As Byte
Dim Zeile As Byte
Dim Spalte As Byte
Dim y As Byte
Dim z As Byte
Dim Lagerort As String
Dim Zaehler As Byte
LastRow = Worksheets("Lagerorte").Cells(Rows.Count, 1).End(xlUp).Row
Spalte = 1
For i = 1 To LastRow
z = z + 1
Zeile = (i - 1) Mod 16 + 1
If Zeile Mod 16 = 0 Then
Spalte = Spalte + 1
If Spalte > 4 Then
Spalte = 1
y = y + 1
End If
End If
Lagerort = Worksheets("Lagerorte").Cells(i, 1).Value
Worksheets("Tabelle1").Cells(Zeile + (16 * y), Spalte) = Lagerort
Next i
End Sub
Danke Curly

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: N�chste Spalte nach 16 Zeilen,N�chstes Blatt ....
15.03.2019 12:54:11
fcs
Hallo Curly,
du musst die Schleifen und Zähler etwas anders aufbauen.
Dann wird es übersichtlicher und du kommst ohne die Mod-Funktion aus, die bei deiner Lösung die Probleme verursacht.
LG
Franz
Sub Lagerorte()
Dim LastRow As Long
Dim Zeile As Long, Zeile_1 As Long, Zeile_L As Long
Dim Spalte As Long
Dim Lagerort As String
Dim wksZiel As Worksheet
Const Anz_Zei As Long = 16 'Anzahl Zeilen je Seite
Const Anz_Spa As Long = 4 'Anzahl Spalten je Seite
Set wksZiel = Worksheets("Tabelle1")
wksZiel.UsedRange.ClearContents
With Worksheets("Lagerorte")
LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
Zeile_1 = 1
Do
For Spalte = 1 To Anz_Spa
For Zeile = Zeile_1 To Zeile_1 + Anz_Zei - 1
Zeile_L = Zeile_L + 1
If Zeile_L > LastRow Then Exit Do
Lagerort = .Cells(Zeile_L, 1).Value
wksZiel.Cells(Zeile, Spalte) = Lagerort
Next
Next
Zeile_1 = Zeile_1 + Anz_Zei
Loop
End With
End Sub

Anzeige
AW: Nächste Spalte nach 16 Zeilen,Nächstes Blatt ....
15.03.2019 13:22:39
MCO
Hallo Curly!
So sollte es gehen.
Die Blattnamen mußte ich anpassen:
Die Färbung kannst du ja wieder rausnehmen
Sub Lagerorte()
Dim LastRow As Long
Dim i As Long, Zeile As Long, Spalte As Long
Dim Lagerort As String
Dim wks As Worksheet
Cells.Clear
Set wks = Worksheets(2)
LastRow = wks.Cells(Rows.Count, 1).End(xlUp).Row
zähler = 1
Spalte = 1
For i = 1 To LastRow
'Spalte = Spalte + 1
Zeile = Zeile + 1
If Zeile > 16 * zähler Then
Spalte = Spalte + 1
If Spalte = 5 Then
Spalte = 1
zähler = zähler + 1
End If
Zeile = 16 * zähler - 15
End If
Lagerort = wks.Cells(i, 1).Value
Worksheets("Tabelle1").Cells(Zeile, Spalte) = Lagerort
Worksheets("Tabelle1").Cells(Zeile, Spalte).Interior.ColorIndex = zähler + 2
Next i
End Sub
Gruß, MCO
Anzeige
AW: Nächste Spalte nach 16 Zeilen,Nächstes Blatt ....
15.03.2019 16:21:26
Curly
Danke euch zwei,
Beide Methoden funktionieren perfekt!
Schönes Wochenende

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige