I am trying to figure out how to process properly the Shapes (textboxes) that I have in a given section...
What I want to achieve in the code below is to go into each Shape (textbox) of each header* within the same section and process it (highlight tags).
What actually happens is that the code will not stop there and will process all shapes (even in the footer) before going to the next header and section.
What am I doing wrong here? It looks like I don't "limit" the execution to the textbox I am working on...

* I know (from another post) that textboxes within headers is an abomination for some of you. I don't want to argue again about it, it only is a fact that I have documents (i.e. converted from PDF) which do have textboxes in headers...

Dim oSection as Range
Dim oHF as Range
Dim Shp as Shape
Dim oOpenTag as Range
Dim oExtraTag as Range

strOTag="##"
For Each oSection In ActiveDocument.Sections
            For Each oHF In oSection.Headers
                With oHF
                    If .LinkToPrevious = False Or oSection.Index = 1 Then 'Header not linked to the previous one
                        For Each Shp In oHF.Shapes 'Pour chaque boîte trouvée
                            If Shp.TextFrame.HasText Then the Shape is a textbox
                                Set oOpenTag = Shp.TextFrame.TextRange 'Whole box
                                Set oExtraTag = oOpenTag.Duplicate 'Duplicating oTextRng
                                While InStr(oExtraTag.Text, strOTag) > 0 'Extra opening tag found in oExtraTag. Highlighting tags
                                    With oExtraTag.Find
                                        .Text = strOTag 'opening tag
                                        If .Execute Then 'Find opening tag. oExtraTag is therefore the extra opening tag
                                            oExtraTag.HighlightColorIndex = wdRed 'Highlight opening tag
                                            Set oOpenTag = Shp.TextFrame.TextRange 'Whole box
                                            oOpenTag.Start = oExtraTag.End 'Starting position of oTextRng is now the end of Opening tag
                                            Set oExtraTag = oOpenTag.Duplicate 'Duplicating oTextRng
                                        End If
                                    End With
                                Wend
                            End If
                        Next Shp
                    End If
                End With
            Next oHF
        Next oSection