Your thread title says "inserting text" which implies the cells already have some text in them and you want to insert your text somewhere within it. If that is the case, you need to show us the existing text you have and what it should look like after the insertion.
Only from your code is it clear you're working with column B. Check your first post, did you mention column B anyway or output into column C?
This is why it's important to be precise or you would have had a suggestion much sooner! One suggestion:
Dim x As Long
Dim arr() As Variant
x = Cells(Rows.Count, 2).End(xlUp).Row
arr = Cells(3, 2).Resize(x - 2).Value
For x = LBound(arr, 1) To UBound(arr, 1)
arr(x, 1) = Format(arr(x, 1), "DDDD")
If Left$(arr(x, 1), 1) <> "S" Then arr(x, 1) = vbNullString
Cells(3, 3).Resize(UBound(arr, 1)).Value = arr
(PS Hope @Rick Rothestein can post a shorter suggestion using Evaluate.. still trying to learn/understand!)
Thank you Rick, hopefully can decipher and use more often.
I know you need to create arrays of equal size and then I get stuck with rest of it. Usually end up with #VALUE in all the cells, suggesting output isn't correct Will practise with these tonight when home, thx again