howiechiang
New Member
- Joined
- Jan 27, 2014
- Messages
- 12
<tbody> </tbody> |
<tbody>
</tbody>
The solution should come out to this:
Name | Category | Number |
Al | cat. 1 | #2 |
Al | cat. 3 | #2 |
Ben | cat. 1 | #1 |
Ben | cat. 2 | #2 |
Fred | cat. 4 | #1 |
<tbody>
</tbody>
<tbody> </tbody> |
Name | Category | Number |
Al | cat. 1 | #2 |
Al | cat. 3 | #2 |
Ben | cat. 1 | #1 |
Ben | cat. 2 | #2 |
Fred | cat. 4 | #1 |
Public Sub RetrieveData()
'Clear current data on List Sheet'
Worksheets("List Sheet1").Activate
Range("A2:F500").Select
Selection.SpecialCells(xlCellTypeConstants, 23).Select
Selection.ClearContents
'Set Ranges'
Dim oTarget As Range
Dim oXed As Range
Dim oCell As Range
Dim oDest As Range
'Set up target & destination'
Worksheets("Chart Sheet").Activate
Set oDest = ThisWorkbook.Worksheets("List Sheet1").Range("A1")
Set oTarget = ActiveSheet.Range("B5:AR999")
'Select only the cells in B5:AR999 that contain an X'
Set oXed = oTarget.SpecialCells(xlCellTypeConstants)
oDest.Value = "Name"
oDest.Offset(0, 1).Value = "Category"
oDest.Offset(0, 2).Value = "Number"
Set oDest = oDest.Offset(1, 0)
'Transpose the data starting in A2 of Sheet2'
For Each oCell In oXed
oDest.Value = Cells(oCell.Row, 1).Value
oDest.Offset(0, 1).Value = Cells(2, oCell.Column).Value
oDest.Offset(0, 2).Value = Cells(3, oCell.Column).Value
Set oDest = oDest.Offset(1, 0)
Next oCell
'Go to List Sheet'
Worksheets("List Sheet1").Activate
End Sub