Werte in Spalte in mehrere Spalten aufteilen

Bild

Betrifft: Werte in Spalte in mehrere Spalten aufteilen
von: Bonduca01
Geschrieben am: 02.11.2015 13:23:30

Hallo,
ich habe in Spalte A1: B30000 Inhalte.
Ich möchte die Werte aufteilen, aber nur bis Zeile 100.
Die Werte sollen also von A1:B100, von C1:D100, von E1:F100 etc. stehen
Weiß jemand wie man das mit VBA umsetzen kann?
Danke!

Bild

Betrifft: AW: ist es eher eine einmalige Angelegenheit? ...
von: ... neopa C
Geschrieben am: 02.11.2015 13:55:47
Hallo,
... wenn ja, dann könnte ich Dir auch eine Formellösung aufzeigen.
Gruß Werner
.. , - ...

Bild

Betrifft: AW: Werte in Spalte in mehrere Spalten aufteilen
von: fcs
Geschrieben am: 02.11.2015 14:23:26
Hallo Bonduca,
hier mein Lösungsvorschlag.
Gruß
Franz

Sub SpalteA_und_B_ungruppieren_1()
  'umgruppieren über Cut & Paste
  Dim wks As Worksheet
  Dim Zeile As Long, Spalte As Long, Zeile_L, StatusCalc As Long
  Dim rngCopy As Range
  
  Set wks = ActiveSheet
  'Makrobremsen lösen
  With Application
    .ScreenUpdating = False
    StatusCalc = .Calculation
    .Calculation = xlCalculationManual
  End With
  
  With wks
    Spalte = 1
    Zeile_L = Application.WorksheetFunction.Max(.Cells(.Rows.Count, 1).End(xlUp).Row, _
        .Cells(.Rows.Count, 2).End(xlUp).Row)
    For Zeile = 101 To Zeile_L Step 100
      Spalte = Spalte + 2
      Set rngCopy = .Range(.Cells(Zeile, 1), .Cells(Zeile + 99, 2))
      rngCopy.Cut Destination:=.Cells(1, Spalte)
    Next Zeile
    .Range("A1:B100").Copy
    .Range(.Cells(1, 3), .Cells(100, Spalte + 1)).PasteSpecial Paste:=xlPasteColumnWidths
    Application.CutCopyMode = False
  End With
  'makrobremsen zurücksetzen
  With Application
    .ScreenUpdating = True
    .Calculation = StatusCalc
  End With
End Sub


Bild

Betrifft: AW: Werte in Spalte in mehrere Spalten aufteilen
von: Jürgen
Geschrieben am: 02.11.2015 14:40:21
Hallo Bonduca,
hier noch eine Variante.

Sub Aufteilen_in_100_Zeilen()
Dim lngRow As Long, aryTmp(), aryZiel(), lngSpalte As Long, lngCol As Long
Dim lngMaxrow As Long
    lngMaxrow = ActiveSheet.UsedRange.Rows.Count
    aryTmp = Range("A1:B" & lngMaxrow)
    lngSpalte = UBound(aryTmp) / 100
    
    ReDim aryZiel(1 To 101, 1 To lngSpalte * 2 + 1)
    
    For lngRow = 1 To 100
        For lngCol = 1 To lngSpalte
            Select Case lngCol
            Case 1
                aryZiel(lngRow, 1) = aryTmp(lngRow, 1)  'Spalte A
                aryZiel(lngRow, 2) = aryTmp(lngRow, 2)  'Spalte B
            
            Case Else
                If lngRow + 100 * (lngCol - 1) <= lngMaxrow Then
                    aryZiel(lngRow, (lngCol * 2) - 1) = aryTmp((lngRow + (100 * (lngCol - 1))),  _
1)
                    aryZiel(lngRow, (lngCol * 2)) = aryTmp(lngRow + 100 * (lngCol - 1), 2)
                End If
            End Select
        Next lngCol
    Next lngRow
    
    Range(Cells(1, 1), Cells(100, lngSpalte * 2)) = aryZiel
    
    
End Sub
Gruß
Jürgen

Bild

Betrifft: AW: Werte in Spalte in mehrere Spalten aufteilen
von: Daniel
Geschrieben am: 02.11.2015 14:34:12
Hi
als Makro so, ist mittlerweile auch ausreichend schnell.

Dim Zeile As Long
Dim Spalte As Long
Spalte = 3
For Zeile = 101 To 30000 Step 100
    Cells(Zeile, 1).Resize(100, 2).Cut Destination:=Cells(1, Spalte)
    Spalte = Spalte + 2
Next
als formel folgende Formel in C1:
=INDEX($A:$B;ZEILE()+100*(SPALTE(A1)+ISTUNGERADE(SPALTE(A1)))/2;1+ISTGERADE(SPALTE()))

die Formel dann soweit nach unten und nach rechts ziehen wie benötigt.
dann Formel kopieren und als Wert an gleicher Stelle einfügen.
nicht mehr benötigte Tabllenteile löschen.
Gruß Daniel

Bild

Betrifft: AW: Werte in Spalte in mehrere Spalten aufteilen
von: Bonduca
Geschrieben am: 06.11.2015 08:19:56
Hallo zusammen.
Sorry für die späte Antwort. Ich dachte, ich hätte mich schon bedankt!
Aber hier nochmal auf diesem Wege: Danke an alle Vorschläge!
Es klappt wie geschmiert.

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Werte in Spalte in mehrere Spalten aufteilen"