Enter......creo que esto se parece mucho a lo que pretendes.
Private Sub Text1_Change()
posicion = Text1.SelStart
Text1.Text = Format(Text1.Text, "##,###")
Text1.SelStart = posicion + CuentaLetras(Text1, ".")
End Sub
Public Function CuentaLetras(frase As String, letra As String, Optional sense As Boolean = False)
'Funcion creada por Acalanto
On Local Error Resume Next
If sense Then
CuentaLetras = Len(frase) - Len(Replace(LCase(frase), LCase(letra), ""))
Else
CuentaLetras = Len(frase) - Len(Replace(frase, letra, ""))
End If
End Function