Gegevens staan in één cel en vervolgens verdeeld over kolommen van links naar rechts. We willen de gegevens splitsen en elk item in een eigen cel plaatsen zodat het overzichtelijker wordt. Bijvoorbeeld, de gegevens staan allemaal in één rij namelijk rij 2, A2:E2
De oude situatie

De nieuwe situatie

1. Kopieer de onderstaande code
2. Open een nieuwe werkmap
3. Druk op de toetscombinatie ALT + F11 om de Visual Basic Editor te openen
4. Druk op de toetscombinatie ALT + N om het menu Invoegen te openen
5. Druk op M om een standaard module in te voegen
6. Daar waar de cursor knippert voeg je de code in middels Ctrl + V
7. Druk op de toetscombinatie ALT + Q om de Editor af te sluiten en terug te keren naar Excel
8. Druk op de toetscombinatie ALT + F8 om de Macro Dialoog te tonen. Dubbeklik op de macro naam om te starten.
Option Explicit
Sub Tekst_Terugloop_Van_Cel_Naar_Rij()
Dim WsNieuw As Worksheet, rngBereik As Range
Dim lngRij As Long, lngKolom As Long, lngVolgende As Long
Dim lngTeller As Long, Data As Variant
'Nieuw werkblad invoegen
Set WsNieuw = Worksheets.Add
'rngBereik is waar de gegevens staan
With Worksheets("Sheet1")
Set rngBereik = .Range("A1").CurrentRegion
'Eerste rij met kolomtitels kopiëren
rngBereik.Rows(1).Copy WsNieuw.Range("A1")
lngVolgende = 2
With rngBereik
'Alle rijen doorlopen
For lngRij = 2 To .Rows.Count
lngTeller = 0
'Alle kolommen doorlopen
For lngKolom = 1 To .Columns.Count
'Gegevens in cel splitsen
Data = Split(.Cells(lngRij, lngKolom).Value, _
Chr(10))
'Gespliste gegevens wegschrijven naar rijen
WsNieuw.Cells(lngVolgende, lngKolom).Resize _
(UBound(Data) + 1).Value = Application.Transpose(Data)
lngTeller = WorksheetFunction.Max(lngTeller, _
UBound(Data) + 1)
Next lngKolom
lngVolgende = lngVolgende + lngTeller
Next lngRij
End With
End With
WsNieuw.Cells.EntireColumn.AutoFit
End Sub