"I'm not sure where to start" I know how you feel. I've been there. Here is the code for what you're looking for:
Option Explicit
Sub myMacro()
' offsets used to find X
Dim rOffset As Integer, cOffset As Integer
rOffset = 0
cOffset = 0
' row numbers for the source and destination
Dim rowDest As Integer, rowSour As Integer
rowDest = 1
rowSour = 2
' loop through all entries in column A
Do While Range("A" & rowSour).Value <> ""
' concatenation proccess when X is found
If Range("B2").offset(rOffset, cOffset).Value = "X" Then
' concatenation proccess
Range("T" & rowDest).Value = Range("B1").offset(0, cOffset).Value + Range("A" & rowSour).Value
' next concatenation
rowDest = rowDest + 1
End If
' next column for X
cOffset = cOffset + 1
' when looped through all columns, prepare variables for the next run
If Range("B1").offset(0, cOffset).Value = "" Then
' next row in column A
rowSour = rowSour + 1
' next row offset for X
rOffset = rOffset + 1
' reset column offset for X
cOffset = 0
End If
Loop
End Sub
Try to step through the program and understand why things are done the way they are. Have a note book with you and for each step right the values of the variables. This program is written in a logical way. No fancy functions or structures are used. It is written as "how you think the procedure should go".
Understand the syntax. THEN, once you figured out the algorithm (how was the solution done), try to make the program more efficient. There are 10s of ways to right a program.
Good luck,