VBA van kolom naar regels

VBA van kolom naar regels

Berichtdoor snb » 11 feb 2008 13:38

In de bijlage 2 methoden om gegevens in een kolom om te zetten naar opeenvolgende regels:
1. met behulp van PasteSpecial
2. met behulp van de werkbladformule Transpose

Areas

In het voorbeeld zijn de gegevens in kolom A per groep gescheiden door een lege cel.
Daardoor kan gebruik gemaakt worden van de eigenschap Areas (een gebied van aaneengesloten cellen) op basis van de niet-lege cellen in kolom A
Voor het gebruik van de eigenschap Areas is het niet van belang hoeveel lege cellen er tussen de groepen zitten.
Ook maakt het daardoor niet uit hoe groot de groep is die naar een regel moet worden omgezet: de groepen kunnen variabel van grootte zijn.

Specialcells

Met de eigenschap specialcells(xlcelltypeconstants) worden de niet-lege cellen in kolom A gefilterd.

Currentregion

In het voorbeeld worden de gegevens uit kolom A per groep (Area) als regel verplaatst naar kolom D en volgende.
De eerste lege regel voor dit gebied wordt bepaald met de eigenschap CurrentRegion. Cel D1 is daarbij de referentiecel.
In het voorbeeld met Transpose wordt daarvoor aan het aantal rijen in currentregion 1 toegevoegd; in het voorbeeld met pastespecial wordt gebruik gemaakt van de eigenschap offset.

In de bijlage staan deze 2 macro's en een kolom met gegevens in het enige werkblad, zodat de code direkt uitgetest kan worden.

Code: Selecteer alles
Sub transpose_()
  For Each ar In Columns([color=green]1[/color]).SpecialCells(xlCellTypeConstants).Areas
    With [[color=green]d1[/color]].CurrentRegion.Rows
      Range(Cells(.Count + 1, [color=green]4[/color]), Cells(.Count + 1, [color=green]3[/color] + ar.Rows.Count)) = WorksheetFunction.Transpose(ar)
    End With
  Next
End Sub


Code: Selecteer alles
Sub pastespecial_()
  For Each ar In Columns([color=green]1[/color]).SpecialCells(xlCellTypeConstants).Areas
    ar.Copy
    [[color=green]d1[/color]].Offset([[color=green]d1[/color]].CurrentRegion.Rows.Count).pastespecial , , , True
  Next
End Sub
Bijlagen
__van kolom naar regel.xls
(16 KiB) 188 keer gedownload
snb
Gebruikersniveau 7
 
Berichten: 5062
Geregistreerd: 22 aug 2007 13:36

Keer terug naar Excel Tips en Trucs

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers. en 1 gast