Try this, start the macro with the raw data sheet active, it will create an Output sheet for you.
Option Explicit
Sub ReArrangeYearly()
'JBeaucaire (8/28/2009)
Dim LR As Long, LC As Long, NR As Long, i As Long
Dim ws As Worksheet
If ActiveSheet.Name = "Output" Then
MsgBox "Please start the macro from the data sheet"
Exit Sub
End If
Set ws = ActiveSheet
If Not Evaluate("ISREF(Output!A1)") Then
Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = "Output"
Range("A2") = "Company Name"
Range("B2") = "Year"
Range("C2") = "S.R."
Range("A2:C2").Interior.ColorIndex = 15
Range("A2:C2").Font.Bold = True
Range("A2:C2").HorizontalAlignment = xlCenter
Range("A2:C2").Borders.LineStyle = xlContinuous
Range("A3").Select
ActiveWindow.FreezePanes = True
ws.Activate
Else
Sheets("Output").Range("A3:D" & Rows.Count).ClearContents
End If
LR = Range("A" & Rows.Count).End(xlUp).Row
LC = Cells(2, Columns.Count).End(xlToLeft).Column
Set ws = Sheets("Output")
NR = 3
For i = 2 To LC
ws.Cells(NR, "A") = Cells(2, i)
Range(Cells(3, "A"), Cells(LR, "A")).Copy
ws.Range("B" & NR).PasteSpecial xlPasteValues
Range(Cells(3, i), Cells(LR, i)).Copy
ws.Cells(NR, "C").PasteSpecial xlPasteValues
NR = NR + Range(Cells(3, "A"), Cells(LR, "A")).Cells.Count
Next i
ws.Activate
Columns("B:C").AutoFit
Range("A3").Select
End Sub
Bookmarks