Código:
Private Sub Text1_Change()
Dim VAriable As Integer
If InStrRev(Text1, "#causal :") <> 0 Then
VAriable = InStrRev(Text1, "#causal :") + 9
Text8 = Text8 & Mid(Text1, VAriable)
End If
End Sub
Lo que hace la funcion InstrRev es buscar coincidencias perooo de atras para adelante ,si la encuentra le suma "9" caracteres y te pasa al Text8 solo lo hablado.
Esto es como lo que querias vos de poner un Timer que lea el text1 cada X segundos ,pero leera el text1 cada vez que cambie o sea cuando recibe Data nueva.
NOTA: los dos textos tanto el text1 como el text8 deben esta Multiline=true ,asi te copia los "Enter"="vbCrLf".
Para mi opinion sera mejor sacar los strings desde el DataArrival del Winsock ,como dice el amigo.
Espero te sirva Saludos .-.