Hola. Lo pude armar en un Do While, el número del que queres saber el factorial estaría almacenado en text1.text, vos si lo tenes en una variable o en una BD, reemplazalo por ese valor. Aqui va...
Código:
Dim Total As Double
Dim N As Integer
If Text1.Text = 0 Then
MsgBox "1"
Else
If Text1.Text < 0 Then
MsgBox "El nº debe ser positivo!"
Else
N = CInt(Text1.Text) - 1
Total = Text1.Text
Do While N <> 0
Total = Total * N
N = N - 1
Loop
MsgBox Total
End If
End If
Total sería el resultado del cálculo. El factorial de 0 es uno (no me preguntes por qué, soy analista de sistemas no profesor de matemáticas jeje), asi que tambien esta validado.
Espero que te sirva el código. Saludos. Lucas