Alors...
Déjà, un concept algorithmique de base, c'est de bien séparer le fonctionnel de l'affichage (Là, je t'accorde volontiers que pour une ligne de code dans la fonction, c'est pas indispensable)
Du coup, pour le 2.8, j'aurais fait une procédure qui gère la partie interaction utilisateur, et une fonction booléene
VBA est un langage évolué, du coup, tu peux directement affecter une expression à ta fonction
J'ai fait un exemple vite fait d'un exemple de structure (de toute façon, tu avais déjà trouvé qu'il fallait se servir du modulo)
Là dedans, reste à faire une petite gestion d'erreur, ou des tests sur ce qui est entré par l'utilisateur pour que ça soit vraiment clean
Public Sub ex_2_8()
Dim nombre As Integer
nombre = CInt(InputBox("Nombre à tester ?" ))
MsgBox IIf(isDivisiblePar9(nombre), "Divisible par 9", "Non divisible par 9" )
End Sub
Private Function isDivisiblePar9(n As Integer) As Boolean
isDivisiblePar9 = n Mod 9 = 0
End Function
Pour le 2.9, il doit y avoir plusieurs façons de faire
L'une d'ellle serait par exemple de convertir ton réel en chaine de caractère (fonction CStr), et de récupérer la partie avant le séparateur décimal, et après
Là encore, plusieurs façons de faire, soit tu parcours caractère par caractère, soit tu affectes à un tableau en séparant sur le séparateur décimal à l'aide de la fonction split
Et comme un exemple vaut parfois toutes les explications :
Sub test()
Dim tbl() As String
Dim nbStr As String
nbStr = CStr(2.000868)
tbl() = Split(nbStr, "," ) 'Séparateur décimal à déterminer
MsgBox tbl(0) 'renvoie 2
MsgBox tbl(1) 'renvoie 000868
End Sub
En espérant que ça ait pu t'aider !