VBA - Excel Liste in Spalten aufteilen

Arog200

Grünschnabel
Hallo Leute,
ich bin sehr neu in VBA. versuche mit dem Buch es zulernen. aber für die Arbeit bräuchte ich folgendes: Ich hoffe ihr könnt mir da helfen.

ich hab eine Liste von werten(z.b.: xysd1) in einer spalte eingefügt. Ich möchte eine Tabelle erstellen und jeden 4.Wert in die nächste Spalte einfügen. dann den 7.WErt in die übernächste usw. Wie könnte es funktionieren?

Z.b.:
xysd1
xysd2
yxsd3
yxsd4
yxsd5
yxds6
yxsd7
yxsd8
yxsd9
yxsd10
...
->

xysd1 yxsd4 yxsd7 xysd10
xysd2 yxsd5 yxsd8 .....
yxsd3 yxds6 yxsd9
 

HonniCilest

Erfahrenes Mitglied
Ich meine damit bedingte Formattierung.
Wähle Formel als Grundlage zur Formattierung, trage z.B. ein

=(REST(ZEILE(); 4) = 0)

und wähle einen roten Hintergrund. Die bedingte Formel muss natürlich auf die gesamte Spalte angewendet werden.
und schon ist jede 4. Zelle in der Spalte rot.

---------------------

Oder du verwendest z.B. Formeln. so könntest du in Spalte B schreiben

=INDEX(A:A;ZEILE()*4)
 
Zuletzt bearbeitet:

Yaslaw

alter Rempler
Moderator
Wenn du es wirklich brauchst
Visual Basic:
Public Sub myReformat(ByRef iSourceRange As String, ByRef iTargetField As String, ByVal iMaxRows As Long)
    Dim i As Long
    Dim colOffset As Long
    Dim rowOffset As Long
    Dim ws As Worksheet
   
    Set ws = ActiveSheet

   
    For i = 1 To ws.Range(iSourceRange).Rows.Count
        If rowOffset = 0 Then
            colOffset = colOffset + 1
        End If
        ws.Range(iTargetField).Offset(rowOffset, colOffset).Value = ws.Range(iSourceRange).Rows(i).Value
        rowOffset = i Mod iMaxRows
    Next i
         
    Set ws = Nothing
End Sub
Aufruf
Visual Basic:
myReformat "A1:A10","C1",3