XL 2010 problème de format nombre/texte

Sheldor

XLDnaute Occasionnel
bonjour,
j'ai une vérification qui tourne sur un fichier de saisie depuis des années et qui consiste à vérifier si la valeur 1 est supérieur à la valeur 2 associée

les cellules sont protégées et en format nombre dans le fichier de saisi fourni aux utilisateurs qui entre les valeurs 1 et 2

pour la première fois j'ai un problème sur trois valeurs: excel les considère comme du texte et me dit du coup qu'elle sont supérieur à la valeur 2 associée

je ne comprends pas pourquoi et ne comprenant pas je ne trouve pas de solution, je me demande si je rate un truc évident ou si il n'y a pas de solution


les données ne viennent pas de format exotique passant par le web ou autre c'est une saisie manuelle directement dans excel, je ne vois pas d'espace ni de caractères cachés, si je revalide la valeur avec entrée le problème disparaît mais ça ne solutionne pas mon problème

très grand merci par avance de vos lumières ;)

nico
 

Pièces jointes

  • ExcelD_nico.xlsm
    91.8 KB · Affichages: 20

Rouge

XLDnaute Impliqué
Bonjour,

Vos données en colonne A (celles en orange) ont bien été saisies sous forme de texte, il faut les ressaisir au format nombre ou standard.

Sinon avec la macro :
Sub Bouton26_Cliquer()
For i = 3 To 9
If CDbl(Cells(i, 1)) > CDbl(Cells(i, 2)) Then Cells(i, 3) = "oui"
Next i
End Sub
nicopec.gif
 

Sheldor

XLDnaute Occasionnel
bonjour Rouge, Sylvanu,

merci pour vos messages

j'imagine que l'utilisateur a fait une saisie ailleurs dans un format texte pour le coller dans le fichier de saisie en passant outre les validations au format décimal...

mais du coup comment détecter qu'il "considère" que c'est du texte car je pensais que IsNumeric(cells(4,1)) me renverrait false mais pas du tout... ce qui est une grande certitude qui vient de s'effondrer...


merci
nico
 

Laurent78

XLDnaute Occasionnel
bonjour Rouge, Sylvanu,

merci pour vos messages

j'imagine que l'utilisateur a fait une saisie ailleurs dans un format texte pour le coller dans le fichier de saisie en passant outre les validations au format décimal...

mais du coup comment détecter qu'il "considère" que c'est du texte car je pensais que IsNumeric(cells(4,1)) me renverrait false mais pas du tout... ce qui est une grande certitude qui vient de s'effondrer...


merci
nico
Bonjour à Tous,
...et pour la fonction Excel (pas en VBA) ESTNUM(A4) renvoie bien FAUX, du coup, peut-être une MFC pour alerter d'une "erreur" de saisie
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Après essais, il s'avère qu'avant de regarder si la valeur est numérique, il évalue si la valeur pourrait être numérique, et si c'est le cas il prend cette valeur transformée. Il est futé. 🤣

En fait il fait :
Valeur=Val(Cellule)
Isnumeric(Valeur)

Par ex :
a1=3 isnumeric=VRAI
a1='3 ( donc commentaire ) isnumeric=VRAI
a1=3 en format texte, isnumeric=VRAI
 

Sheldor

XLDnaute Occasionnel
je voulais dire: si je veux détecter une valeur non numérique j'utilise IsNumeric mais dans ce cas il n'arrive pas à détecter que ce n'est pas numérique du coup je me demandais s'il y avait un autre moyen

après oui merci pour Val() que je ne connaissais pas
 

pierrejean

XLDnaute Barbatruc
Bonjour à tous
Autre solution
VB:
Sub Bouton26_Cliquer()
For i = 3 To 9

If Cells(i, 1) * 1 > Cells(i, 2) * 1 Then Cells(i, 3) = "oui"

Next i

End Sub

et plus prudent
VB:
Sub Bouton26_Cliquer()
For i = 3 To 9
If Cells(i, 1) * 1 > Cells(i, 2) * 1 Then
   Cells(i, 3) = "oui"
Else
   Cells(i, 3) = ""
Next i
End Sub
 
Dernière édition:

Sheldor

XLDnaute Occasionnel
merci à tous pour votre aide et vos éclaircissements, cette vérif fait partie d'un ensemble de vérifs et j'ai construit mon code en testant si la valeur est numérique ou non avant de décider quoi en faire mais je vais peut être devoir reconsidérer cette approche

excellente journée à vous
 

Membres actuellement en ligne

Statistiques des forums

Discussions
315 127
Messages
2 116 534
Membres
112 771
dernier inscrit
mikadu49