Programmation nombres décimaux en VBA

pissouman123 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention   -  
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai du crée un programme VBA mais vraiment quelque chose de tout simple. En faite ,j'introduis un nombre de 0 à 20 et ca verifie si la note est comprise ou non entre ces 2 valeurs . Mais cela ne marche que avec les entiers , c'est à dire que si je met par exemple 13.333 , il me met que ce n'est pas compris entre 0 et 20 alor sque oui!
J'ai cherché mais je ne trouve pas comment ecrire correctement le code pour que cela marche. Mon code pour le moment est le suivant:

Private Sub Bouton_test_Click()
Dim Note As Single
Note = CSng(Zonenote.Text)
If Note >= 0 And Note <= 20 Then
Resultat.Caption = "Note correcte"
Else
Resultat.Caption = "Note incorrecte"
End If
End Sub


Normalement faut pas ajouter grand chose pour les décimals mais je galère vraiment ..

En espèrant que quelqu'un puisse m'aider , merci.
A voir également:

3 réponses

eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
Bonsoir,

As-tu contrôlé que le séparateur décimal dans les paramètres régionaux soit bien sur . et non sur ,
Sinon essaie en saisissant 13,3 et si ça ne suffit pas met un point d'arret après note= pour contrôler sa valeur après la conversion

eric
0
pissouman123 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
Oui mais je ne sais toujours pas ce que je dois changer dans LE CODE.
En faite , j'aimerai que si le nombre est un nombre décimal , alors il apparaissent " Ce nombre n'est pas un naturel "

Je sais pas si tu vois ce que je veux dire..
Merci d'avance
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
j'aimerai que si le nombre est un nombre décimal , alors il apparaissent " Ce nombre n'est pas un naturel
C'est le contraire que ce que tu disais au post 1 non ?
Ton code est bon par rapport au post 1
0
pissouman123 Messages postés 10 Date d'inscription   Statut Membre Dernière intervention  
 
En faite , je voudrais que si par exemple je met 13.7 , il apparaisse " Ce nombre n'est pas un naturel " ..
Mais je ne sais pas quoi changer dans mon code , a mon avis je dois programmer pour que quand je rentre un nombre décimal , il apparaisse " ce nombre n'est pas un naturel" . Mais je ne sais vraiment pas comment faire :s
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 275
 
Quel est le rapport avec ta 1ère question ?
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Bonjour,
Lors de la saisie, vous tapez votre note avec comme séparateur décimal le point ".". Votre code fonctionne avec la virgule.
Pour pouvoir saisir soit un point, soit une virgule, vous pouvez écrire :
Dim Note As Single 
Note = CSng(Replace(Zonenote.Text, ".", ",")) 
If Note >= 0 And Note <= 20 Then 
Resultat.Caption = "Note correcte" 
Else 
Resultat.Caption = "Note incorrecte" 
End If

La fonction Replace va remplacer les "." par des ","...

EDIT : suite à un bug, je viens de voir la suite de la discussion... Pardon pour l'incruste en Hors sujet en plus...
Bonne journée à vous
Cordialement,
-- Tout problème à sa solution. S'il n'y a pas de solution, ou est le problème? --
0