I like to use a user defined function for things like that
Option Explicit
'1- When I run into the first “(“, replace it with (carriage return) + (3 spaces)
'2- IF I run into the next “(“, replace it with (carriage return) + (previously established tab) + (3 spaces)
'3- If I run into a “)”, (previously established tab) - (3 spaces) – reduces the space count for tab only
'4- If I run into a “,”,replace it with (carriage return) + (previously established tab)
Function ReformatBoolean(s As String) As String
Dim iNumSpaces As Long, iChar As Long
Dim sNewString As String, sNewString2 As String
iNumSpaces = 0
sNewString = s
sNewString2 = vbNullString
sNewString = Replace(sNewString, " (", "(")
sNewString = Replace(sNewString, "( ", "(")
sNewString = Replace(sNewString, " )", ")")
sNewString = Replace(sNewString, ") ", ")")
sNewString = Replace(sNewString, " ,", ",")
sNewString = Replace(sNewString, ", ", ",")
For iChar = 1 To Len(sNewString)
Select Case Mid(sNewString, iChar, 1)
Case "("
iNumSpaces = iNumSpaces + 3
sNewString2 = sNewString2 & vbLf & Space(iNumSpaces)
Case ")"
If iNumSpaces > 3 Then iNumSpaces = iNumSpaces - 3
sNewString2 = sNewString2 & vbLf & Space(iNumSpaces)
Case ","
sNewString2 = sNewString2 & vbLf & Space(iNumSpaces)
Case Else
sNewString2 = sNewString2 & Mid(sNewString, iChar, 1)
End Select
Next iChar
sNewString2 = Trim(sNewString2)
Do While (Right(sNewString2, 1) = vbLf) Or (Right(sNewString2, 1) = " ")
sNewString2 = Left(sNewString2, Len(sNewString2) - 1)
Loop
sNewString2 = Trim(sNewString2)
ReformatBoolean = sNewString2
End Function
Paul