Sub MakeColumnIntoTable_TransposeFixedNumColumns() ' ' MakeColumnIntoTable Macro ' Macro recorded 27/07/2004 by Andrew Noske ' ' Moves up (and counts) from current cell until the first blank cell. ' Then goes down a single column, and transposes this number of rows down, ' into columns across ' Dim nRows_, nCols_, sRange_, nOffsetDown_ For j = 0 To 50 ActiveCell.Offset(-1, 0).Range("A1").Select 'move up one If (ActiveCell.Text = "") Then Exit For End If Next j ActiveCell.Offset(1, 0).Range("A1").Select 'move down one(to first element) If (j = 0) Then j = 2 'Exit Sub End If nRows_ = j + 1 nCols_ = 100 sRange_ = "A1:A" + CStr(nRows_) For i = 0 To nCols_ ActiveCell.Range(sRange_).Select Selection.Copy nOffsetDown_ = i * (nRows_ - 1) 'How far down to go ActiveCell.Offset(-nOffsetDown_, 1).Range("A1").Select 'move to paste position Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True 'paste transposed ActiveCell.Offset(nRows_ + nOffsetDown_, -1).Range("A1").Select 'move to one below last copied region Next i ActiveCell.Offset(-nCols_ * nRows_, 1).Range("A1").Select 'move back to top End Sub ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Sub MakeColumnsIntoTable_CopyColumnsOfSizeUpToFirstBlank() ' ' MakeColumnIntoTable Macro ' Macro recorded 27/07/2004 by Andrew Noske ' ' Moves up (and counts) from current cell until the first blank cell. ' Uses this as the # of rows (nRows_) in output column. ' Now goes down single column and copies accross one column/chunk ' after the other (each nRows_ down). ' Dim nRows_, nCols_, sRange_, nOffsetDown_ For j = 0 To 50 ActiveCell.Offset(-1, 0).Range("A1").Select 'move up one If (ActiveCell.Text = "") Then Exit For End If Next j ActiveCell.Offset(1, 0).Range("A1").Select 'move down one(to first element) If (j = 0) Then Exit Sub End If nRows_ = j + 1 nCols_ = 30 sRange_ = "A1:A" + CStr(nRows_) For i = 0 To nCols_ ActiveCell.Range(sRange_).Select Selection.Copy nOffDown_ = i * (nRows_) 'How far down to go nOffAcross_ = i + 1 'How far down right ActiveCell.Offset(-nOffDown_, nOffAcross_).Range("A1").Select 'move to paste position Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=False 'paste ActiveCell.Offset(nRows_ + nOffDown_, -(nOffAcross_)).Range("A1").Select 'move to one below last copied region Next i ActiveCell.Offset(-nCols_ * nRows_, 1).Range("A1").Select 'move back to top End Sub