There are potentially many headers in a document. You need to identify which section and which header in that section. The following example examines the primary header in the section where the cursor is when you run the macro. If necessary you can loop through all sections and the headers in those sections.
There is no need to 'select' the found word/string in order to read it and the word that comes before.
Another issue not mentioned by Paul is what Word considers is a 'word', so when looking to add a word to a string, it helps to know what that 'word' might be. However the following should be easy enough to adapt. The string variable to which the search string and previous 'word' are added is sText
Code:
Sub FindInHeader()
Dim oRng As Range
Dim sText As String
Dim sWord As String
Dim numWords As Integer
Dim i As Integer
Dim j As Integer
numWords = 1
'In the following line set the section and the particular header
Set oRng = Selection.Sections(1).Headers(wdHeaderFooterPrimary).Range
sWord = InputBox("Enter the text to find")
i = Len(sWord)
For j = 1 To i
If (Mid(sWord, j, 1)) = " " Then
numWords = numWords + 1
End If
Next j
With oRng.Find
Do While .Execute(FindText:=sWord, MatchWholeWord:=True)
oRng.MoveStart wdWord, -1
Exit Do
Loop
End With
If Not oRng.Words.Count = numWords + 1 Then
sText = ""
Else
sText = oRng.Text
End If
If sText = "" Then
MsgBox "Not found"
Else
MsgBox sText
End If
lbl_Exit:
Set oRng = Nothing
Exit Sub
End Sub