|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() Inscription : octobre 2005 Messages : 304 ![]() |
Bonjour,
j'utilise une macro access qui ouvre un fichier excel et insère des données dans une table notamment des chiffres décimal. Pour controler la saisie des utilisateurs, je vérifie que dans une cellule ou on attends du numérique que l'on ne saisisse pas du texte. et par hasard je suis tombé sur un truc un peu bizare : si je met un chiffre avec une virgule, pas de problème la fonction Code :
IsNumeric(xlsFeuille.Cells(iNumLigne, iNumPeriode)) = False Par contre, si je saisi un chiffre décimal avec un point, la la fonction me renvoi "false" alors que c'est bien du numérique. Conséquence je rejette la saisie de l'utilisateur alors qu'elle est correct... est-ce que quelqu'un sait ce qu'il se passe et aurait une solution ? merci |
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé Sénior
![]() Jérôme FONTAINEContrôleur de Gestion Inscription : juin 2006 Messages : 3 899 ![]() |
Bonjour;
Citation:
er
__________________
Jérôme Citation:
nous encouragera.Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
|
||
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : octobre 2005 Messages : 304 ![]() |
en allant plus loin, j'enleve le controle de saisie, il y a un plantage a l'exécution de la requete >> le champs dans la table est du numérique, j'ai l'impression qu'il considère le chiffre comme une chaine de caractère à cause du point ?
|
|
|
00
|
|
|
#4 | |
|
Expert Confirmé Sénior
![]() Jérôme FONTAINEContrôleur de Gestion Inscription : juin 2006 Messages : 3 899 ![]() |
Et si tu remplaces les "." par des ","
Code :
IsNumeric(Replace(xlsFeuille.Cells(iNumLigne, iNumPeriode).Value,".",",")) = False
__________________
Jérôme Citation:
nous encouragera.Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
|
|
|
|
00
|
|
|
#5 |
![]() ![]() Didier GONARDFormateur Développeur Office - indépendant Inscription : février 2008 Messages : 2 353 ![]() |
Bonjour,
vois ceci http://didier-gonard.developpez.com/...texbox/#LV-G-1 et le reste pour le fond entre les séparateurs feuilles et VBA.. cordialement, Didier
__________________
Didier Gonard Ps : Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite ! Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP N'oubliez pas de mettre : ..quand c'est le cas !
|
|
|
00
|
|
|
#6 | |
|
Membre du Club
![]() Inscription : octobre 2005 Messages : 304 ![]() |
jfontaine, merci de ta réponse.
Je confirme ce que je dis, si je saisi 100.35, la fonction isnumeric renvoi bien false. Si je saisi 100,35, la fonction renvoi vrai. mon paramétrage est French(France). pour ce paramétrage le symbole décimal est la virgule. Bonjour Ormonth, et merci de ta réponse j'ai lu ce que tu as posté, mais je n'y ai pas trouvé de solutions. Peux-tu m'expliquer d'avantage ? Merci. Citation:
|
|
|
|
00
|
|
|
#7 | |
![]() ![]() Didier GONARDFormateur Développeur Office - indépendant Inscription : février 2008 Messages : 2 353 ![]() |
Bonjour,
je pige mal le contexte Citation:
vois ceci aussi sinon : Influence des séparateurs décimal et listes FR/US sur l’enregistreur de macro cordialement, Didier
__________________
Didier Gonard Ps : Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite ! Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP N'oubliez pas de mettre : ..quand c'est le cas !
|
|
|
|
00
|
|
|
#8 | |
|
Expert Confirmé Sénior
![]() Jérôme FONTAINEContrôleur de Gestion Inscription : juin 2006 Messages : 3 899 ![]() |
Code :
IsNumeric(Replace(xlsFeuille.Cells(iNumLigne, iNumPeriode).Value,".",",")) = False Code :
xlsFeuille.Cells(iNumLigne, iNumPeriode).Value
__________________
Jérôme Citation:
nous encouragera.Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
|
|
|
|
00
|
|
|
#9 | |
|
Membre du Club
![]() Inscription : octobre 2005 Messages : 304 ![]() |
je saisi un chiffre décimal avec comme symbole décimal le point dans la cellule excel.
Citation:
mais plus loin a l'exécution de la requete ça plante car dans la table le champs est de type numérique. donc je sais pas trop ce que ca va donner si j utilise également le replace dans la requete avec également la fonction STR comme exxpliqué plus haut. |
|
|
|
00
|
|
|
#10 | |
![]() ![]() Didier GONARDFormateur Développeur Office - indépendant Inscription : février 2008 Messages : 2 353 ![]() |
Citation:
Bonjour, C'est impossible si tu as un paramétrage français de base, tu saisis alors du texte ! fais le test dans uns cellule, et observe l'alignement qui se produit, à gauche = texte, à droite = nombres / dates. C'est pourquoi le point du pavé numérique est converti en virgule à la saisie dans une cellule, ce qui n'est pas le cas du point du clavier cordialement, Didier
__________________
Didier Gonard Ps : Pour noter positivement ou négativement un post, vous pouvez cliquer sur les pouces en bas à droite ! Tutoriels : Voir la liste de mes tutoriels et mon site pro sur ma Page DVP N'oubliez pas de mettre : ..quand c'est le cas !
|
|
|
|
00
|
|
|
#11 | ||
|
Membre Expert
![]() Hervé SilveInscription : août 2010 Messages : 773 ![]() |
Bonjour,
Et en testant si le séparateur entrée par l'utilisateur correspond bien au séparateur système ? A mettre dans le module de ta Form : Code :
|
||
|
|
00
|
|
|
#12 | |
|
Membre du Club
![]() Inscription : octobre 2005 Messages : 304 ![]() |
Citation:
De plus je suis sur un portable, et quand je saisi le point il ne me converti pas en virgule. |
|
|
|
00
|
|
|
#13 | |
|
Expert Confirmé Sénior
![]() Jérôme FONTAINEContrôleur de Gestion Inscription : juin 2006 Messages : 3 899 ![]() |
Après toutes ces réponses, je suis un peu perdu sur ce qui te bloques.
Peux tu nous faire un topo avec ton code et le résultat attendu
__________________
Jérôme Citation:
nous encouragera.Dans le cas ou la réponse mérite, à vos yeux, un , nous faire partager la raison de ce vote, pourrait nous permettre de nous améliorer.
|
|
|
|
10
|
Copyright © 2000-2012 - www.developpez.com