Hay varios problemas en tu código.
La variable no_hay_primo no la estás reiniciando para volver a comprobar los números.
Además, para saber si un número es múltiplo de otro, sólo tienes que usar Mod (resto):
Código vb:
Ver originalIf numero Mod otro_numero = 0 Then
' numero es múltiplo de otro_numero
End If
Por lo que tu código debería ser:
Código vb:
Ver originalFor I = 1 To numerodado
EsPrimo = True
For I2 = 2 To I - 1
If I Mod I2 = 0 Then
EsPrimo = False
Exit For
End If
Next I2
If EsPrimo Then
lista_primos = lista_primos & I & ","
End If
Next I