Programmation nombres décimaux en VBA

Fermé
pissouman123 Messages postés 10 Date d'inscription lundi 24 mai 2010 Statut Membre Dernière intervention 24 juillet 2010 - 24 mai 2010 à 22:18
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 - 25 mai 2010 à 15:27
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 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
Modifié par eriiic le 24/05/2010 à 22:57
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 lundi 24 mai 2010 Statut Membre Dernière intervention 24 juillet 2010
24 mai 2010 à 23:19
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 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
24 mai 2010 à 23:21
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 lundi 24 mai 2010 Statut Membre Dernière intervention 24 juillet 2010
25 mai 2010 à 12:21
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 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
25 mai 2010 à 15:27
Quel est le rapport avec ta 1ère question ?
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
Modifié par pijaku le 25/05/2010 à 12:28
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