Sub RegelsSamenvoegen()
'Door Leo Meijer; Worksheet.NL; 29/05/2011
Dim i As Long, x As Long
Dim ii As Integer
Dim sNaam As String
Dim T1 As Variant
Const lSC As Long = 2 'regelnummer van de startcel
T1 = Cells(lSC, 1).Resize(Cells(Rows.Count, 1).End(xlUp).Row - (lSC - 1), 38)
ReDim T2(1 To 38, 1 To 1)
For i = 1 To 38
T2(i, 1) = T1(1, i)
Next i
x = 1
For i = 2 To UBound(T1, 1)
If T1(i, 1) = T1(i - 1, 1) Then
For ii = 1 To 38
If Replace(T1(i, ii), " ", "") <> "" Then T2(ii, x) = T1(i, ii)
Next ii
Else
x = x + 1
ReDim Preserve T2(1 To 38, 1 To x)
For ii = 1 To 38
T2(ii, x) = T1(i, ii)
Next ii
End If
Next i
With Sheets.Add(after:=Sheets(ActiveSheet.Index))
sNaam = Application.InputBox("Geef een geldige sheetnaam...", "Naam", "nieuwe naam", , , , , 2)
If TestNaam(sNaam) = True Then 'naam bestaat niet, dus is te gebruiken
.Name = sNaam
End If
With .Previous
.Range("A1:AL1").Copy Cells(1, 1)
.Cells.Copy
End With
.Cells.PasteSpecial xlPasteFormats
.Cells(2, 1).Resize(UBound(T2, 2), 38) = WorksheetFunction.Transpose(T2)
.Cells(1, 1).Select
End With
Application.CutCopyMode = False
End Sub
Function TestNaam(TabNaam As String) As Boolean
Dim ws As Worksheet
On Error Resume Next
Set ws = Sheets(TabNaam)
On Error GoTo 0
If ws Is Nothing Then
TestNaam = True
Else
TestNaam = False
End If
End Function