OVH Cloud OVH Cloud

imposer aux max 2 decimales

7 réponses
Avatar
prioux
Bonjour.
Je cherche a imposer dans une saisie un nombre max de 2 décimales.
Le format de la cellule est à 2 décimales ->OK pour l'affichage.
Mais l'utilisateur peut taper 3 ou 4 décimales.
Ce que je cherche à eviter.
Données->Validation (les données sont en décimales et comprises entre 0 et 20)
Comment faire ?
D'avance merci.

7 réponses

Avatar
Claude Trouet
Bonjour,
une solution, peut-être pas la plus simple !
dans le module VBA de la feuille, copier ceci , en considérant que c'est en
colonne D
que l'on veut les nombres avec 2 décimales
cela n'empêche pas l'utilisateur de rentrer 10 chiffres derrières la
virgule,
mais 2 seulement seront prises en compte sans même qu'il y ait d'arrondi sur
la 2ème décimale

Private Sub Worksheet_Change(ByVal Target As Range)
If Not (IsNull(Intersect(Range("D:D"), Target))) Then
separe = InStr(Target.Value, ",") 'position de la virgule
nbdecimal = Len(Target) - separe 'nbre de décimales
If nbdecimal > 2 Then
Target = Mid$(Target, 1, separe - 1) & "," & Mid$(Target, separe
+ 1, 2)
End If
End If
End Sub

Cela convient ?
CT

a écrit dans le message de news:

Bonjour.
Je cherche a imposer dans une saisie un nombre max de 2 décimales.
Le format de la cellule est à 2 décimales ->OK pour l'affichage.
Mais l'utilisateur peut taper 3 ou 4 décimales.
Ce que je cherche à eviter.
Données->Validation (les données sont en décimales et comprises entre 0 et
20)
Comment faire ?
D'avance merci.


Avatar
Claude Trouet
Re bonjour,
pour qu'un nombre soit affiché ....fonction Str ajoutée

Private Sub Worksheet_Change(ByVal Target As Range)
If Not (IsNull(Intersect(Range("D:D"), Target))) Then
separe = InStr(Target.Value, ",")
nbdecimal = Len(Target) - separe
If nbdecimal > 2 Then
Target = Str(Mid$(Target, 1, separe - 1) & "," & Mid$(Target,
separe + 1, 2))
End If
End If
End Sub

Bonne journée
CT

a écrit dans le message de news:

Bonjour.
Je cherche a imposer dans une saisie un nombre max de 2 décimales.
Le format de la cellule est à 2 décimales ->OK pour l'affichage.
Mais l'utilisateur peut taper 3 ou 4 décimales.
Ce que je cherche à eviter.
Données->Validation (les données sont en décimales et comprises entre 0 et
20)
Comment faire ?
D'avance merci.


Avatar
ru-th
Salut

Validation la formule est pour c2
=SI(ESTERR(NBCAR(C2)-TROUVE(".";C2;1));VRAI;SI(NBCAR(C2)-TROUVE(".";C2;1)<3;
VRAI;FAUX))
a+
rural thierry
a écrit dans le message de news:

Bonjour.
Je cherche a imposer dans une saisie un nombre max de 2 décimales.
Le format de la cellule est à 2 décimales ->OK pour l'affichage.
Mais l'utilisateur peut taper 3 ou 4 décimales.
Ce que je cherche à eviter.
Données->Validation (les données sont en décimales et comprises entre 0 et
20)

Comment faire ?
D'avance merci.


Avatar
AV
Pour limiter la saisie à des valeurs numériques et avec un maxi de 2 décimales :
Validation --> personnalisée :

=(NBCAR(A1)-NBCAR(TRONQUE(A1))-1)<=2

AV
Avatar
RaMA
Bonjour
Formule de validation
=(C2*100)-(ENT(C2*100))=0
Salutations
RaMa
--
.
"AV" a écrit dans le message de news:

Pour limiter la saisie à des valeurs numériques et avec un maxi de 2
décimales :
Validation --> personnalisée :

=(NBCAR(A1)-NBCAR(TRONQUE(A1))-1)<=2

AV




Avatar
AV
C'est une bonne alternative !

AV
Avatar
khem21
Le mercredi 03 Novembre 2004 à 16:13 par RaMA :
Bonjour
Formule de validation
=(C2*100)-(ENT(C2*100))=0
Salutations
RaMa
--
.
"AV"
Pour limiter la saisie à des valeurs numériques et avec un maxi
de 2
décimales :
Validation --> personnalisée :
=(NBCAR(A1)-NBCAR(TRONQUE(A1))-1)<=2
AV
Cela fonctionne très bien pour 5 ou encore pour 5,2 mais je ne m'explique vraiment pas pourquoi le nombre 5,1 n'est pas accepté.