remplacer Virgule par point et reciproquement en fonction des parametres regionnaux
6 réponses
musecyan
Bonjour je reccupere des donn=E9es (sous la forme d'une chaine de
caracteres) dans excell 2003 de type numerique du genre 12.325
Pour que excel les reconnaissent comme des valeurs numeriques il faut
soit que je parametre les "regionnal settings" de windaub en separateur
decimal =3D .
Soit que je le laisse par defaut en "," dans windows et qu'en vba je
remplace ce "." par une virgule. Ce que je fait comme ceci
If InStr(1, cell.Text, ".") > 0 Then
cell.Value =3D CDbl(Val(cell.Text))
Bon ca marche sans probleme mais j'aimerais bien que cela fonctionne
tout le temps que l'utilisateur est regle les parametre regionnaux
windaub en . ou en , et moi dans VBA savoir si j'ai besoin de modifier
ma chaine ou non en fonction d'un parametre que je reccupererai qui me
dirai comment windows est configure par defaut (et donc excell aussi
car il utilise ses parametres) parce que l'erreur 13 incompatibilite de
type ca fait pas tres serieux
d'avance Merci ...
(ps si il n'y a pas de solution direct je placerait un userform sur la
feuille pour que l'utilisateur choisisse "." ou "," comme sperateur
decimal mais je suis sur qu'il y a des super programmeur qui ont deja
ete confronte a ce probleme et qui on une solution)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
musecyan
bin en fait ca marche c'est bon puisque la fonction CDbl(Val(Chaine) convertit ma chaine de caractere en nombre en se demerdant avec le . qui devient , au besoin ou qui reste un point si on est en parametre regionnaux .
Bonjour je reccupere des données (sous la forme d'une chaine de caracteres) dans excell 2003 de type numerique du genre 12.325
Pour que excel les reconnaissent comme des valeurs numeriques il faut soit que je parametre les "regionnal settings" de windaub en separateur decimal = . Soit que je le laisse par defaut en "," dans windows et qu'en vba je remplace ce "." par une virgule. Ce que je fait comme ceci If InStr(1, cell.Text, ".") > 0 Then cell.Value = CDbl(Val(cell.Text))
Bon ca marche sans probleme mais j'aimerais bien que cela fonctionne tout le temps que l'utilisateur est regle les parametre regionnaux windaub en . ou en , et moi dans VBA savoir si j'ai besoin de modifier ma chaine ou non en fonction d'un parametre que je reccupererai qui me dirai comment windows est configure par defaut (et donc excell aussi car il utilise ses parametres) parce que l'erreur 13 incompatibilite de type ca fait pas tres serieux
d'avance Merci ...
(ps si il n'y a pas de solution direct je placerait un userform sur la feuille pour que l'utilisateur choisisse "." ou "," comme sperateur decimal mais je suis sur qu'il y a des super programmeur qui ont deja ete confronte a ce probleme et qui on une solution)
bin en fait ca marche c'est bon puisque la fonction CDbl(Val(Chaine)
convertit ma chaine de caractere en nombre en se demerdant avec le .
qui devient , au besoin ou qui reste un point si on est en parametre
regionnaux .
Bonjour je reccupere des données (sous la forme d'une chaine de
caracteres) dans excell 2003 de type numerique du genre 12.325
Pour que excel les reconnaissent comme des valeurs numeriques il faut
soit que je parametre les "regionnal settings" de windaub en separateur
decimal = .
Soit que je le laisse par defaut en "," dans windows et qu'en vba je
remplace ce "." par une virgule. Ce que je fait comme ceci
If InStr(1, cell.Text, ".") > 0 Then
cell.Value = CDbl(Val(cell.Text))
Bon ca marche sans probleme mais j'aimerais bien que cela fonctionne
tout le temps que l'utilisateur est regle les parametre regionnaux
windaub en . ou en , et moi dans VBA savoir si j'ai besoin de modifier
ma chaine ou non en fonction d'un parametre que je reccupererai qui me
dirai comment windows est configure par defaut (et donc excell aussi
car il utilise ses parametres) parce que l'erreur 13 incompatibilite de
type ca fait pas tres serieux
d'avance Merci ...
(ps si il n'y a pas de solution direct je placerait un userform sur la
feuille pour que l'utilisateur choisisse "." ou "," comme sperateur
decimal mais je suis sur qu'il y a des super programmeur qui ont deja
ete confronte a ce probleme et qui on une solution)
bin en fait ca marche c'est bon puisque la fonction CDbl(Val(Chaine) convertit ma chaine de caractere en nombre en se demerdant avec le . qui devient , au besoin ou qui reste un point si on est en parametre regionnaux .
Bonjour je reccupere des données (sous la forme d'une chaine de caracteres) dans excell 2003 de type numerique du genre 12.325
Pour que excel les reconnaissent comme des valeurs numeriques il faut soit que je parametre les "regionnal settings" de windaub en separateur decimal = . Soit que je le laisse par defaut en "," dans windows et qu'en vba je remplace ce "." par une virgule. Ce que je fait comme ceci If InStr(1, cell.Text, ".") > 0 Then cell.Value = CDbl(Val(cell.Text))
Bon ca marche sans probleme mais j'aimerais bien que cela fonctionne tout le temps que l'utilisateur est regle les parametre regionnaux windaub en . ou en , et moi dans VBA savoir si j'ai besoin de modifier ma chaine ou non en fonction d'un parametre que je reccupererai qui me dirai comment windows est configure par defaut (et donc excell aussi car il utilise ses parametres) parce que l'erreur 13 incompatibilite de type ca fait pas tres serieux
d'avance Merci ...
(ps si il n'y a pas de solution direct je placerait un userform sur la feuille pour que l'utilisateur choisisse "." ou "," comme sperateur decimal mais je suis sur qu'il y a des super programmeur qui ont deja ete confronte a ce probleme et qui on une solution)
AV
<bin en fait ca marche c'est bon puisque la fonction CDbl(Val(Chaine) <convertit ma chaine de caractere en nombre en se demerdant avec le . <qui devient , au besoin ou qui reste un point si on est en parametre <Regionnaux .
Une simple opération arithmétique neutre devrait suffire :
x = chaîne * 1 x = chaîne + 0
AV
<bin en fait ca marche c'est bon puisque la fonction CDbl(Val(Chaine)
<convertit ma chaine de caractere en nombre en se demerdant avec le .
<qui devient , au besoin ou qui reste un point si on est en parametre
<Regionnaux .
Une simple opération arithmétique neutre devrait suffire :
<bin en fait ca marche c'est bon puisque la fonction CDbl(Val(Chaine) <convertit ma chaine de caractere en nombre en se demerdant avec le . <qui devient , au besoin ou qui reste un point si on est en parametre <Regionnaux .
Une simple opération arithmétique neutre devrait suffire :
x = chaîne * 1 x = chaîne + 0
AV
Modeste
Bonsour® AV avec ferveur ;o))) vous nous disiez :
Une simple opération arithmétique neutre devrait suffire : x = chaîne * 1 x = chaîne + 0
on pourrait faire aussi : x = chaîne ^ 1 x = N(chaîne)
et puis ... pfff...zut.....il me semble que j'en oublie une autre ;o)))
-- -- @+ ;o)))
Bonsour® AV avec ferveur ;o))) vous nous disiez :
Une simple opération arithmétique neutre devrait suffire :
x = chaîne * 1
x = chaîne + 0
on pourrait faire aussi :
x = chaîne ^ 1
x = N(chaîne)
et puis ...
pfff...zut.....il me semble que j'en oublie une autre ;o)))