Results 1 to 15 of 15
  1. #1
    Star Lounger
    Join Date
    Aug 2015
    Posts
    98
    Thanks
    14
    Thanked 0 Times in 0 Posts

    Update for highlight macro in Word 2010

    I've been using this macro coding successfully to highlight key words/digits in documents. I would like to update this further to

    1. ignore any automatic multilevel numbering and only highlight manual numbering to be converted to auto;
    2. ignore cross references already in fields so I know only to cross reference the highlighted ones manually inputted;
    3. ignore any square brackets already in fields and only highlighted those inserted manually.

    I have no idea if this is actually possible in Word so any advice would be very much appreciated.

    Code:
    Sub DPU_HighlightTest()
    Application.ScreenUpdating = False
    Dim StrFnd As String, i As Long
    With ActiveDocument.Range.Find
      .ClearFormatting
      .Replacement.ClearFormatting
      .Forward = True
      .Wrap = wdFindContinue
      .MatchCase = False
      .MatchWholeWord = True
      .MatchWildcards = False
      .MatchSoundsLike = False
      .MatchAllWordForms = False
      .Replacement.Text = "^&"
      .Replacement.Highlight = True
      Options.DefaultHighlightColorIndex = wdYellow
      StrFnd = "Minute,Hour,Day,Week,Month,Year,Business,Working"
      For i = 0 To UBound(Split(StrFnd, ","))
        .Text = Split(StrFnd, ",")(i)
        .Execute Replace:=wdReplaceAll
      Next
      .MatchCase = True
      'Options.DefaultHighlightColorIndex = wdBrightGreen
      StrFnd = "Appendix,Clause,Paragraph,Part,Schedule,Section,Regulation,Article,Company Number,Title Number,Registered Number,Registration Number,Registered Office,PROVIDED,per cent,chapter"
      For i = 0 To UBound(Split(StrFnd, ","))
        .Text = Split(StrFnd, ",")(i)
        .Execute Replace:=wdReplaceAll
        .Text = Split(StrFnd, ",")(i) & "s"
        .Execute Replace:=wdReplaceAll
      Next
      .MatchCase = False
      'Options.DefaultHighlightColorIndex = wdTurquoise
      StrFnd = "ten,twelve,fourteen,eighteen,twenty,thirty,forty,sub-clause,sub clause,sub-paragraph,sub paragraph"
      For i = 0 To UBound(Split(StrFnd, ","))
        .Text = Split(StrFnd, ",")(i)
        .Execute Replace:=wdReplaceAll
      Next
        'Options.DefaultHighlightColorIndex = wdPink
      .MatchWildcards = True
      .Text = "[0-9\[\]^34^0147^0148]{1,}"
      .Replacement.Text = "^&"
      .Execute Replace:=wdReplaceAll
      .Text = "<[ap].[m.]{1,2}"
      .Execute Replace:=wdReplaceAll
    End With
    Application.ScreenUpdating = True
    End Sub

  2. #2
    Super Moderator
    Join Date
    Jan 2001
    Location
    Melbourne, Victoria, Australia
    Posts
    3,852
    Thanks
    4
    Thanked 259 Times in 239 Posts
    The most obvious solution for the first request is to search for a return followed by a 'digit .' combo but this would add the highlight to the preceding paragraph mark as well which would be invisible unless that paragraph had an automatic number on it. So you will need to do this as a multistage search and replace
    Find: ^13([0-9.]{2,})
    Replace: ^pzxzx\1
    Then
    Find: zxzx([0-9.]{2,})
    Replace: \1 -> including the highlight formatting

    For the other two field issues, I would do all the replaces you want first and then finally run a cleanup that removes the highlighting from any fields eg
    Code:
      ActiveWindow.View.ShowFieldCodes = True
      With Selection.Find
        .ClearFormatting
        .Replacement.ClearFormatting
        .Replacement.Highlight = False
        .Text = "^d"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        .Execute Replace:=wdReplaceAll
      End With
      ActiveWindow.View.ShowFieldCodes = False
    Andrew Lockton, Chrysalis Design, Melbourne Australia

  3. The Following User Says Thank You to Andrew Lockton For This Useful Post:

    Charles Kenyon (2016-03-22)

  4. #3
    Star Lounger
    Join Date
    Aug 2015
    Posts
    98
    Thanks
    14
    Thanked 0 Times in 0 Posts
    Hi Andrew, thank you very much for the coding - I have added it to my highlight macro at the end and it works brilliantly. Thank you for taking the time to reply, regards Shelley

  5. #4
    Star Lounger
    Join Date
    Aug 2015
    Posts
    98
    Thanks
    14
    Thanked 0 Times in 0 Posts
    Hi, I am working on a document that has hundreds of footnotes - is there a way to get the highlight macro to work in footnotes also as currently I can't get it to work. Not sure what coding to use here. Regards, Shelley

  6. #5
    Super Moderator
    Join Date
    Jan 2001
    Location
    Melbourne, Victoria, Australia
    Posts
    3,852
    Thanks
    4
    Thanked 259 Times in 239 Posts
    I don't know how your current code looks but the following iterates through every range including the footnotes. I've highlighted the lines that were added.
    Code:
    Sub DPU_HighlightTest()
      Dim StrFnd As String, i As Long
      Dim aRng As Range
      
      Application.ScreenUpdating = False
      
      For Each aRng In ActiveDocument.StoryRanges
        With aRng.Find
          .ClearFormatting
          .Replacement.ClearFormatting
          .Forward = True
          .Wrap = wdFindContinue
          .MatchCase = False
          .MatchWholeWord = True
          .MatchWildcards = False
          .MatchSoundsLike = False
          .MatchAllWordForms = False
          .Replacement.Text = "^&"
          .Replacement.Highlight = True
          Options.DefaultHighlightColorIndex = wdYellow
          StrFnd = "Minute,Hour,Day,Week,Month,Year,Business,Working"
          For i = 0 To UBound(Split(StrFnd, ","))
            .Text = Split(StrFnd, ",")(i)
            .Execute Replace:=wdReplaceAll
          Next
          .MatchCase = True
          'Options.DefaultHighlightColorIndex = wdBrightGreen
          StrFnd = "Appendix,Clause,Paragraph,Part,Schedule,Section,Regulation,Article,Company Number,Title Number,Registered Number,Registration Number,Registered Office,PROVIDED,per cent,chapter"
          For i = 0 To UBound(Split(StrFnd, ","))
            .Text = Split(StrFnd, ",")(i)
            .Execute Replace:=wdReplaceAll
            .Text = Split(StrFnd, ",")(i) & "s"
            .Execute Replace:=wdReplaceAll
          Next
          .MatchCase = False
          'Options.DefaultHighlightColorIndex = wdTurquoise
          StrFnd = "ten,twelve,fourteen,eighteen,twenty,thirty,forty,sub-clause,sub clause,sub-paragraph,sub paragraph"
          For i = 0 To UBound(Split(StrFnd, ","))
            .Text = Split(StrFnd, ",")(i)
            .Execute Replace:=wdReplaceAll
          Next
            'Options.DefaultHighlightColorIndex = wdPink
          .MatchWildcards = True
          .Text = "[0-9\[\]^34^0147^0148]{1,}"
          .Replacement.Text = "^&"
          .Execute Replace:=wdReplaceAll
          .Text = "<[ap].[m.]{1,2}"
          .Execute Replace:=wdReplaceAll
        End With
      Next aRng
      Application.ScreenUpdating = True
    End Sub
    Andrew Lockton, Chrysalis Design, Melbourne Australia

  7. #6
    Star Lounger
    Join Date
    Aug 2015
    Posts
    98
    Thanks
    14
    Thanked 0 Times in 0 Posts
    Hi Andrew, many thanks for the help on this macro (full coding as per below) - I have added in your highlighted bits and now seems to work in the body of the document and the footnotes. The macro now seems to take quite a long time to run though. Regards, Shelley


    Code:
    Sub DPU_HouseStyleHighlight()
     Dim StrFnd As String, i As Long
      Dim aRng As Range
      Application.ScreenUpdating = False
      For Each aRng In ActiveDocument.StoryRanges
        With aRng.Find
      .ClearFormatting
      .Replacement.ClearFormatting
      .Forward = True
      .Wrap = wdFindContinue
      .MatchCase = False
      .MatchWholeWord = True
      .MatchWildcards = False
      .MatchSoundsLike = False
      .MatchAllWordForms = False
      .Replacement.Text = "^&"
      .Replacement.Highlight = True
      Options.DefaultHighlightColorIndex = wdYellow
      StrFnd = "Minute,Hour,Day,Week,Month,Year,Business,Working"
      For i = 0 To UBound(Split(StrFnd, ","))
        .Text = Split(StrFnd, ",")(i)
        .Execute Replace:=wdReplaceAll
      Next
      .MatchCase = True
      'Options.DefaultHighlightColorIndex = wdBrightGreen
      StrFnd = "Appendix,Clause,Paragraph,Part,Schedule,Section,Regulation,Article,Company Number,Title Number,Registered Number,Registration Number,Registered Office,PROVIDED,per cent,chapter"
      For i = 0 To UBound(Split(StrFnd, ","))
        .Text = Split(StrFnd, ",")(i)
        .Execute Replace:=wdReplaceAll
        .Text = Split(StrFnd, ",")(i) & "s"
        .Execute Replace:=wdReplaceAll
      Next
      .MatchCase = False
      'Options.DefaultHighlightColorIndex = wdTurquoise
      StrFnd = "ten,twelve,fourteen,eighteen,twenty,thirty,forty,sub-clause,sub clause,sub-paragraph,sub paragraph"
      For i = 0 To UBound(Split(StrFnd, ","))
        .Text = Split(StrFnd, ",")(i)
        .Execute Replace:=wdReplaceAll
      Next
        'Options.DefaultHighlightColorIndex = wdPink
      .MatchWildcards = True
      .Text = "[0-9\[\]^0145^0146^0147^0148]{1,}"
      .Replacement.Text = "^&"
      .Execute Replace:=wdReplaceAll
      .Text = "<[ap].[m.]{1,2}"
      .Execute Replace:=wdReplaceAll
      .Text = "<[ap].[m]{1,2}"
      .Execute Replace:=wdReplaceAll
    End With
    Next aRng
    ActiveWindow.View.ShowFieldCodes = True
      With Selection.Find
        .ClearFormatting
        .Replacement.ClearFormatting
        .Replacement.Highlight = False
        .Text = "^d"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        .Execute Replace:=wdReplaceAll
      End With
      ActiveWindow.View.ShowFieldCodes = False
      Application.ScreenUpdating = True
    End Sub

  8. #7
    Super Moderator
    Join Date
    Jan 2001
    Location
    Melbourne, Victoria, Australia
    Posts
    3,852
    Thanks
    4
    Thanked 259 Times in 239 Posts
    The code is a lot slower because it is looping ALL the storyranges. You could speed it up if the loop was reconfigured to ignore most of the storyranges by using a Select Case aRng.StoryType as shown in this aircode

    For Each aRng In ActiveDocument.StoryRanges
    Select Case rngStory.StoryType
    Case wdMainTextStory, wdFootnotesStory
    ' do all your replaces here

    End Select
    Next aRng

  9. #8
    Super Moderator
    Join Date
    May 2002
    Location
    Canberra, Australian Capital Territory, Australia
    Posts
    5,054
    Thanks
    2
    Thanked 417 Times in 346 Posts
    Quote Originally Posted by Andrew Lockton View Post
    For the other two field issues, I would do all the replaces you want first and then finally run a cleanup that removes the highlighting from any fields eg
    Andrew: That approach could lead to the macro messing around with the field codes. I'd suggest a far simpler and more secure approach would be to ignore what happens to the field results while the Find/Replace processing is running and simply issue a .Fields.Update command to reset the field display once all the Find/Replace processing has been done.
    Cheers,

    Paul Edstein
    [MS MVP - Word]

  10. #9
    Super Moderator
    Join Date
    Jan 2001
    Location
    Melbourne, Victoria, Australia
    Posts
    3,852
    Thanks
    4
    Thanked 259 Times in 239 Posts
    Paul

    Updating the fields will re-introduce the problem that Shelley was trying to solve.

    For instance if a cross-reference points at text that is highlighted then the cross-ref field will also show that highlighted text with highlight on. The same thing happens with TOC entries.

    In my reading of her problem, this is the issue she was trying to solve. She is looking for the cause of issues, not the secondary instances which should be addressed by fixing the cause (and then updating the fields).
    Andrew Lockton, Chrysalis Design, Melbourne Australia

  11. #10
    Star Lounger
    Join Date
    Aug 2015
    Posts
    98
    Thanks
    14
    Thanked 0 Times in 0 Posts
    Hi Andrew, I added this coding to the macro but a 'Compile Error Variable not defined' message came up and highlighted 'rng.Story' as being the error. I just want to check with you that I have inserted it in the correct place in the coding.

    It also highlights cross ref fields in the footnotes. I've attached a test word document I've been using to test the macro.

    Many thanks, Shelley

    Code:
    Sub DPU_HouseStyleHighlight()
     Dim StrFnd As String, i As Long
      Dim aRng As Range
      Application.ScreenUpdating = False
      For Each aRng In ActiveDocument.StoryRanges
     Select Case rngStory.StoryType
     Case wdMainTextStory, wdFootnotesStory
        With aRng.Find
      .ClearFormatting
      .Replacement.ClearFormatting
      .Forward = True
      .Wrap = wdFindContinue
      .MatchCase = False
      .MatchWholeWord = True
      .MatchWildcards = False
      .MatchSoundsLike = False
      .MatchAllWordForms = False
      .Replacement.Text = "^&"
      .Replacement.Highlight = True
      Options.DefaultHighlightColorIndex = wdYellow
      StrFnd = "Minute,Hour,Day,Week,Month,Year,Business,Working"
      For i = 0 To UBound(Split(StrFnd, ","))
        .Text = Split(StrFnd, ",")(i)
        .Execute Replace:=wdReplaceAll
      Next
      .MatchCase = True
      'Options.DefaultHighlightColorIndex = wdBrightGreen
      StrFnd = "Appendix,Clause,Paragraph,Part,Schedule,Section,Regulation,Article,Company Number,Title Number,Registered Number,Registration Number,Registered Office,PROVIDED,per cent,chapter"
      For i = 0 To UBound(Split(StrFnd, ","))
        .Text = Split(StrFnd, ",")(i)
        .Execute Replace:=wdReplaceAll
        .Text = Split(StrFnd, ",")(i) & "s"
        .Execute Replace:=wdReplaceAll
      Next
      .MatchCase = False
      'Options.DefaultHighlightColorIndex = wdTurquoise
      StrFnd = "ten,twelve,fourteen,eighteen,twenty,thirty,forty,sub-clause,sub clause,sub-paragraph,sub paragraph"
      For i = 0 To UBound(Split(StrFnd, ","))
        .Text = Split(StrFnd, ",")(i)
        .Execute Replace:=wdReplaceAll
      Next
        'Options.DefaultHighlightColorIndex = wdPink
      .MatchWildcards = True
      .Text = "[0-9\[\]^0145^0146^0147^0148]{1,}"
      .Replacement.Text = "^&"
      .Execute Replace:=wdReplaceAll
      .Text = "<[ap].[m.]{1,2}"
      .Execute Replace:=wdReplaceAll
      .Text = "<[ap].[m]{1,2}"
      .Execute Replace:=wdReplaceAll
    End With
    End Select
    Next aRng
    ActiveWindow.View.ShowFieldCodes = True
      With Selection.Find
        .ClearFormatting
        .Replacement.ClearFormatting
        .Replacement.Highlight = False
        .Text = "^d"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        .Execute Replace:=wdReplaceAll
      End With
      ActiveWindow.View.ShowFieldCodes = False
      Application.ScreenUpdating = True
    End Sub
    Attached Files Attached Files

  12. #11
    Super Moderator
    Join Date
    May 2002
    Location
    Canberra, Australian Capital Territory, Australia
    Posts
    5,054
    Thanks
    2
    Thanked 417 Times in 346 Posts
    Quote Originally Posted by Andrew Lockton View Post
    Updating the fields will re-introduce the problem that Shelley was trying to solve.
    Granted, but the cure risks being worse than the disease. Besides, clicking on any cross-reference/TOC entry that ends up being highlighted will usually take one directly to the problem entry. Once that's fixed, Ctrl-A, F9 will update the fields again and the problem highlighting in the field will go away.
    Cheers,

    Paul Edstein
    [MS MVP - Word]

  13. #12
    Super Moderator
    Join Date
    Jan 2001
    Location
    Melbourne, Victoria, Australia
    Posts
    3,852
    Thanks
    4
    Thanked 259 Times in 239 Posts
    Shelley
    Sorry, the name of the range variable is aRng so that line should read as
    Select Case aRng.StoryType

    Paul
    I agree with your workflow description but it would require a LOT of Ctrl-clicks, Alt-Left Arrow pressing and F9 pressing than simply removing the highlights from the fields if Shelley is working through a file from top to bottom. I also can't see what damage can be inflicted on the field result by removing the highlighting from it.
    Andrew Lockton, Chrysalis Design, Melbourne Australia

  14. #13
    Star Lounger
    Join Date
    Aug 2015
    Posts
    98
    Thanks
    14
    Thanked 0 Times in 0 Posts
    Hi Andrew
    I have changed the code as you suggest it now works except it is still highlighting cross refs in the footnotes. Thanks, Shelley

    Code:
    Sub DPU_HouseStyleHighlight()
     Dim StrFnd As String, i As Long
      Dim aRng As Range
      Application.ScreenUpdating = False
      For Each aRng In ActiveDocument.StoryRanges
      Select Case aRng.StoryType
     Case wdMainTextStory, wdFootnotesStory
        With aRng.Find
      .ClearFormatting
      .Replacement.ClearFormatting
      .Forward = True
      .Wrap = wdFindContinue
      .MatchCase = False
      .MatchWholeWord = True
      .MatchWildcards = False
      .MatchSoundsLike = False
      .MatchAllWordForms = False
      .Replacement.Text = "^&"
      .Replacement.Highlight = True
      Options.DefaultHighlightColorIndex = wdYellow
      StrFnd = "Minute,Hour,Day,Week,Month,Year,Business,Working"
      For i = 0 To UBound(Split(StrFnd, ","))
        .Text = Split(StrFnd, ",")(i)
        .Execute Replace:=wdReplaceAll
      Next
      .MatchCase = True
      'Options.DefaultHighlightColorIndex = wdBrightGreen
      StrFnd = "Appendix,Clause,Paragraph,Part,Schedule,Section,Regulation,Article,Company Number,Title Number,Registered Number,Registration Number,Registered Office,PROVIDED,per cent,chapter"
      For i = 0 To UBound(Split(StrFnd, ","))
        .Text = Split(StrFnd, ",")(i)
        .Execute Replace:=wdReplaceAll
        .Text = Split(StrFnd, ",")(i) & "s"
        .Execute Replace:=wdReplaceAll
      Next
      .MatchCase = False
      'Options.DefaultHighlightColorIndex = wdTurquoise
      StrFnd = "ten,twelve,fourteen,eighteen,twenty,thirty,forty,sub-clause,sub clause,sub-paragraph,sub paragraph"
      For i = 0 To UBound(Split(StrFnd, ","))
        .Text = Split(StrFnd, ",")(i)
        .Execute Replace:=wdReplaceAll
      Next
        'Options.DefaultHighlightColorIndex = wdPink
      .MatchWildcards = True
      .Text = "[0-9\[\]^0145^0146^0147^0148]{1,}"
      .Replacement.Text = "^&"
      .Execute Replace:=wdReplaceAll
      .Text = "<[ap].[m.]{1,2}"
      .Execute Replace:=wdReplaceAll
      .Text = "<[ap].[m]{1,2}"
      .Execute Replace:=wdReplaceAll
     End With
    End Select 
    Next aRng
    ActiveWindow.View.ShowFieldCodes = True
      With Selection.Find
        .ClearFormatting
        .Replacement.ClearFormatting
        .Replacement.Highlight = False
        .Text = "^d"
        .Replacement.Text = ""
        .Forward = True
        .Wrap = wdFindContinue
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
        .Execute Replace:=wdReplaceAll
      End With
      ActiveWindow.View.ShowFieldCodes = False
      Application.ScreenUpdating = True
    End Sub
    Last edited by Lady-Laughsalot; 2016-04-04 at 05:41.

  15. #14
    Super Moderator
    Join Date
    Jan 2001
    Location
    Melbourne, Victoria, Australia
    Posts
    3,852
    Thanks
    4
    Thanked 259 Times in 239 Posts
    I've never felt the need to put cross references in footnotes so I wasn't expecting this as a requirement. It is easily resolved by moving the field cleanup inside the range loop as shown below.
    Code:
    Sub DPU_HouseStyleHighlight()
     Dim StrFnd As String, i As Long
      Dim aRng As Range
      Application.ScreenUpdating = False
      For Each aRng In ActiveDocument.StoryRanges
        Select Case aRng.StoryType
         Case wdMainTextStory, wdFootnotesStory
            With aRng.Find
          .ClearFormatting
          .Replacement.ClearFormatting
          .Forward = True
          .Wrap = wdFindContinue
          .MatchCase = False
          .MatchWholeWord = True
          .MatchWildcards = False
          .MatchSoundsLike = False
          .MatchAllWordForms = False
          .Replacement.Text = "^&"
          .Replacement.Highlight = True
          Options.DefaultHighlightColorIndex = wdYellow
          StrFnd = "Minute,Hour,Day,Week,Month,Year,Business,Working"
          For i = 0 To UBound(Split(StrFnd, ","))
            .Text = Split(StrFnd, ",")(i)
            .Execute Replace:=wdReplaceAll
          Next
          .MatchCase = True
          'Options.DefaultHighlightColorIndex = wdBrightGreen
          StrFnd = "Appendix,Clause,Paragraph,Part,Schedule,Section,Regulation,Article,Company Number,Title Number,Registered Number,Registration Number,Registered Office,PROVIDED,per cent,chapter"
          For i = 0 To UBound(Split(StrFnd, ","))
            .Text = Split(StrFnd, ",")(i)
            .Execute Replace:=wdReplaceAll
            .Text = Split(StrFnd, ",")(i) & "s"
            .Execute Replace:=wdReplaceAll
          Next
          .MatchCase = False
          'Options.DefaultHighlightColorIndex = wdTurquoise
          StrFnd = "ten,twelve,fourteen,eighteen,twenty,thirty,forty,sub-clause,sub clause,sub-paragraph,sub paragraph"
          For i = 0 To UBound(Split(StrFnd, ","))
            .Text = Split(StrFnd, ",")(i)
            .Execute Replace:=wdReplaceAll
          Next
            'Options.DefaultHighlightColorIndex = wdPink
          .MatchWildcards = True
          .Text = "[0-9\[\]^0145^0146^0147^0148]{1,}"
          .Replacement.Text = "^&"
          .Execute Replace:=wdReplaceAll
          .Text = "<[ap].[m.]{1,2}"
          .Execute Replace:=wdReplaceAll
          .Text = "<[ap].[m]{1,2}"
          .Execute Replace:=wdReplaceAll
         End With
        End Select
        ActiveWindow.View.ShowFieldCodes = True
        With aRng.Find
          .ClearFormatting
          .Replacement.ClearFormatting
          .Replacement.Highlight = False
          .Text = "^d"
          .Replacement.Text = ""
          .Forward = True
          .Wrap = wdFindContinue
          .Format = True
          .MatchCase = False
          .MatchWholeWord = False
          .MatchWildcards = False
          .MatchSoundsLike = False
          .MatchAllWordForms = False
          .Execute Replace:=wdReplaceAll
        End With
        ActiveWindow.View.ShowFieldCodes = False
      Next aRng
      Application.ScreenUpdating = True
    End Sub
    Andrew Lockton, Chrysalis Design, Melbourne Australia

  16. #15
    Star Lounger
    Join Date
    Aug 2015
    Posts
    98
    Thanks
    14
    Thanked 0 Times in 0 Posts
    Thanks Andrew, much appreciated

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •