Je cherche a determiner le symbole decimal sur la machine ou s'execute le
code: "." ou "," ou "?".
(Mes donnees sont lues sur un fichier US avec "." en symbole decimal
Suivant que mon ordinateur est US, FR, ou ..., je dois substituer a ce "."
le symbole decimal idoine pour transformer ce String en Double avant de
l'utiliser dans des calculs)
Je cherche a determiner le symbole decimal sur la machine ou s'execute le code: "." ou "," ou "?". (Mes donnees sont lues sur un fichier US avec "." en symbole decimal Suivant que mon ordinateur est US, FR, ou ..., je dois substituer a ce "." le symbole decimal idoine pour transformer ce String en Double avant de l'utiliser dans des calculs)
VbDecimalSymbol? NON ...
Merci
Bonjour/soir,
Réponse sur la faq:
http://faq.vb.free.fr
Pour le moment elle semble innaccessible mais la solution consiste à faire:
Format("0",".")
ou passer par les APIs
Je cherche a determiner le symbole decimal sur la machine ou
s'execute le code: "." ou "," ou "?".
(Mes donnees sont lues sur un fichier US avec "." en symbole decimal
Suivant que mon ordinateur est US, FR, ou ..., je dois substituer a
ce "." le symbole decimal idoine pour transformer ce String en Double
avant de l'utiliser dans des calculs)
Je cherche a determiner le symbole decimal sur la machine ou s'execute le code: "." ou "," ou "?". (Mes donnees sont lues sur un fichier US avec "." en symbole decimal Suivant que mon ordinateur est US, FR, ou ..., je dois substituer a ce "." le symbole decimal idoine pour transformer ce String en Double avant de l'utiliser dans des calculs)
VbDecimalSymbol? NON ...
Merci
Laurent Castagnetti
Par les API :
Private Declare Function GetProfileString Lib "kernel32" Alias "GetProfileStringA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long) As Long
'/ Conversion du separateur decimal '/ Public Function ConvDecimal(vntValeur As Variant) As Variant
Dim strSeparateur As String Dim intPosDecimal As Integer Dim strSize As String strSize = Space$(128)
On Error GoTo ChgtDecimal
'/ Lecture du Type de Separateur Decimal de Windows strSeparateur = GetProfileString("intl", "sDecimal", "", strSize, Len(strSize)) strSeparateur = Left$(strSize, strSeparateur)
'/ Lecture de la Position du Separateur Decimal
'/ Si Separateur = Virgule intPosDecimal = InStr(1, vntValeur, ",") If intPosDecimal > 1 Then ConvDecimal = CDec(Left$(vntValeur, intPosDecimal - 1) + strSeparateur + Right$(vntValeur, (Len(vntValeur) - intPosDecimal))) Exit Function End If
'/ Si Separateur = Point intPosDecimal = InStr(1, vntValeur, ".") If intPosDecimal > 1 Then ConvDecimal = CDec(Left$(vntValeur, intPosDecimal - 1) + strSeparateur + Right$(vntValeur, (Len(vntValeur) - intPosDecimal))) Exit Function End If
'/ Si pas de Separateur If intPosDecimal = 0 Then ConvDecimal = Format(vntValeur, "0.00#") 'Le format depend du nbre de chiffres apres la virgule que l'on veut pour les nombres entiers convertis Exit Function End If
'/ Traitement des Erreurs ChgtDecimal: intPosDecimal = InStr(1, vntValeur, ".") Resume Next
End Function
"François Picalausa" a écrit dans le message de news: #p$
Bonjour/soir,
Réponse sur la faq: http://faq.vb.free.fr
Pour le moment elle semble innaccessible mais la solution consiste à
xx wrote: > Bonjour > > Je cherche a determiner le symbole decimal sur la machine ou > s'execute le code: "." ou "," ou "?". > (Mes donnees sont lues sur un fichier US avec "." en symbole decimal > Suivant que mon ordinateur est US, FR, ou ..., je dois substituer a > ce "." le symbole decimal idoine pour transformer ce String en Double > avant de l'utiliser dans des calculs) > > VbDecimalSymbol? NON > ... > > > Merci
Par les API :
Private Declare Function GetProfileString Lib "kernel32" Alias
"GetProfileStringA" (ByVal lpAppName As String, ByVal lpKeyName As String,
ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As
Long) As Long
'/ Conversion du separateur decimal
'/
Public Function ConvDecimal(vntValeur As Variant) As Variant
Dim strSeparateur As String
Dim intPosDecimal As Integer
Dim strSize As String
strSize = Space$(128)
On Error GoTo ChgtDecimal
'/ Lecture du Type de Separateur Decimal de Windows
strSeparateur = GetProfileString("intl", "sDecimal", "", strSize,
Len(strSize))
strSeparateur = Left$(strSize, strSeparateur)
'/ Lecture de la Position du Separateur Decimal
'/ Si Separateur = Virgule
intPosDecimal = InStr(1, vntValeur, ",")
If intPosDecimal > 1 Then
ConvDecimal = CDec(Left$(vntValeur, intPosDecimal - 1) +
strSeparateur + Right$(vntValeur, (Len(vntValeur) - intPosDecimal)))
Exit Function
End If
'/ Si Separateur = Point
intPosDecimal = InStr(1, vntValeur, ".")
If intPosDecimal > 1 Then
ConvDecimal = CDec(Left$(vntValeur, intPosDecimal - 1) +
strSeparateur + Right$(vntValeur, (Len(vntValeur) - intPosDecimal)))
Exit Function
End If
'/ Si pas de Separateur
If intPosDecimal = 0 Then
ConvDecimal = Format(vntValeur, "0.00#") 'Le format depend du nbre
de chiffres apres la virgule que l'on veut pour les nombres entiers
convertis
Exit Function
End If
'/ Traitement des Erreurs
ChgtDecimal:
intPosDecimal = InStr(1, vntValeur, ".")
Resume Next
End Function
"François Picalausa" <fpicalausa@chez.com> a écrit dans le message de news:
#p$3OQGUDHA.1664@TK2MSFTNGP11.phx.gbl...
Bonjour/soir,
Réponse sur la faq:
http://faq.vb.free.fr
Pour le moment elle semble innaccessible mais la solution consiste à
xx wrote:
> Bonjour
>
> Je cherche a determiner le symbole decimal sur la machine ou
> s'execute le code: "." ou "," ou "?".
> (Mes donnees sont lues sur un fichier US avec "." en symbole decimal
> Suivant que mon ordinateur est US, FR, ou ..., je dois substituer a
> ce "." le symbole decimal idoine pour transformer ce String en Double
> avant de l'utiliser dans des calculs)
>
> VbDecimalSymbol? NON
> ...
>
>
> Merci
Private Declare Function GetProfileString Lib "kernel32" Alias "GetProfileStringA" (ByVal lpAppName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long) As Long
'/ Conversion du separateur decimal '/ Public Function ConvDecimal(vntValeur As Variant) As Variant
Dim strSeparateur As String Dim intPosDecimal As Integer Dim strSize As String strSize = Space$(128)
On Error GoTo ChgtDecimal
'/ Lecture du Type de Separateur Decimal de Windows strSeparateur = GetProfileString("intl", "sDecimal", "", strSize, Len(strSize)) strSeparateur = Left$(strSize, strSeparateur)
'/ Lecture de la Position du Separateur Decimal
'/ Si Separateur = Virgule intPosDecimal = InStr(1, vntValeur, ",") If intPosDecimal > 1 Then ConvDecimal = CDec(Left$(vntValeur, intPosDecimal - 1) + strSeparateur + Right$(vntValeur, (Len(vntValeur) - intPosDecimal))) Exit Function End If
'/ Si Separateur = Point intPosDecimal = InStr(1, vntValeur, ".") If intPosDecimal > 1 Then ConvDecimal = CDec(Left$(vntValeur, intPosDecimal - 1) + strSeparateur + Right$(vntValeur, (Len(vntValeur) - intPosDecimal))) Exit Function End If
'/ Si pas de Separateur If intPosDecimal = 0 Then ConvDecimal = Format(vntValeur, "0.00#") 'Le format depend du nbre de chiffres apres la virgule que l'on veut pour les nombres entiers convertis Exit Function End If
'/ Traitement des Erreurs ChgtDecimal: intPosDecimal = InStr(1, vntValeur, ".") Resume Next
End Function
"François Picalausa" a écrit dans le message de news: #p$
Bonjour/soir,
Réponse sur la faq: http://faq.vb.free.fr
Pour le moment elle semble innaccessible mais la solution consiste à
xx wrote: > Bonjour > > Je cherche a determiner le symbole decimal sur la machine ou > s'execute le code: "." ou "," ou "?". > (Mes donnees sont lues sur un fichier US avec "." en symbole decimal > Suivant que mon ordinateur est US, FR, ou ..., je dois substituer a > ce "." le symbole decimal idoine pour transformer ce String en Double > avant de l'utiliser dans des calculs) > > VbDecimalSymbol? NON > ... > > > Merci
Olivier GOUPIL
Mid(CStr(3 / 2), 2, 1)
A+
"xx" a écrit dans le message de news:
Bonjour
Je cherche a determiner le symbole decimal sur la machine ou s'execute le code: "." ou "," ou "?". (Mes donnees sont lues sur un fichier US avec "." en symbole decimal Suivant que mon ordinateur est US, FR, ou ..., je dois substituer a ce "." le symbole decimal idoine pour transformer ce String en Double avant de l'utiliser dans des calculs)
VbDecimalSymbol? NON ...
Merci
Mid(CStr(3 / 2), 2, 1)
A+
"xx" <xx@nospam.net> a écrit dans le message de
news:ejeS3KGUDHA.3192@tk2msftngp13.phx.gbl...
Bonjour
Je cherche a determiner le symbole decimal sur la machine ou s'execute le
code: "." ou "," ou "?".
(Mes donnees sont lues sur un fichier US avec "." en symbole decimal
Suivant que mon ordinateur est US, FR, ou ..., je dois substituer a ce "."
le symbole decimal idoine pour transformer ce String en Double avant de
l'utiliser dans des calculs)
Je cherche a determiner le symbole decimal sur la machine ou s'execute le code: "." ou "," ou "?". (Mes donnees sont lues sur un fichier US avec "." en symbole decimal Suivant que mon ordinateur est US, FR, ou ..., je dois substituer a ce "." le symbole decimal idoine pour transformer ce String en Double avant de l'utiliser dans des calculs)
VbDecimalSymbol? NON ...
Merci
François Picalausa
Bonjour/soir,
Mid(CStr(3 / 2), 2, len(CStr(3 / 2))-2)
En effet qui te dit que le séparateur décimal ne fait pas 3 caractères?
Je cherche a determiner le symbole decimal sur la machine ou s'execute le code: "." ou "," ou "?". (Mes donnees sont lues sur un fichier US avec "." en symbole decimal Suivant que mon ordinateur est US, FR, ou ..., je dois substituer a ce "." le symbole decimal idoine pour transformer ce String en Double avant de l'utiliser dans des calculs)
VbDecimalSymbol? NON ...
Merci
Bonjour/soir,
Mid(CStr(3 / 2), 2, len(CStr(3 / 2))-2)
En effet qui te dit que le séparateur décimal ne fait pas 3 caractères?
"xx" <xx@nospam.net> a écrit dans le message de
news:ejeS3KGUDHA.3192@tk2msftngp13.phx.gbl...
Bonjour
Je cherche a determiner le symbole decimal sur la machine ou
s'execute le code: "." ou "," ou "?".
(Mes donnees sont lues sur un fichier US avec "." en symbole decimal
Suivant que mon ordinateur est US, FR, ou ..., je dois substituer a
ce "." le symbole decimal idoine pour transformer ce String en
Double avant de l'utiliser dans des calculs)
Je cherche a determiner le symbole decimal sur la machine ou s'execute le code: "." ou "," ou "?". (Mes donnees sont lues sur un fichier US avec "." en symbole decimal Suivant que mon ordinateur est US, FR, ou ..., je dois substituer a ce "." le symbole decimal idoine pour transformer ce String en Double avant de l'utiliser dans des calculs)
VbDecimalSymbol? NON ...
Merci
xx
"François Picalausa" a écrit dans le message de news:%23p$
Bonjour/soir,
Réponse sur la faq: http://faq.vb.free.fr
Pour le moment elle semble innaccessible mais la solution consiste à
faire:
Format("0",".") ou passer par les APIs
Je prends le 'Format(0,".")' et j'ajoute le WWW a mes signets. J'avais daja eu des problemes avec les mois: une application OK en Septembre (Sept, Sept, Sept) plantera en Allemand en Octobre (Oct, Oct, Okt) fonctionnera en Novembre (Nov, Nov, Nov) plantera en Allemand en Decembre (Dec, Dec, Dez) fonctionnera en Janvier (Jan, Jan, Jan) plantera en Allemand et Anglais en Fevrier (Fev, Feb, Feb)
J'etais passe par un tableau de conversion...
Merci
"François Picalausa" <fpicalausa@chez.com> a écrit dans le message de
news:%23p$3OQGUDHA.1664@TK2MSFTNGP11.phx.gbl...
Bonjour/soir,
Réponse sur la faq:
http://faq.vb.free.fr
Pour le moment elle semble innaccessible mais la solution consiste à
faire:
Format("0",".")
ou passer par les APIs
Je prends le 'Format(0,".")' et j'ajoute le WWW a mes signets.
J'avais daja eu des problemes avec les mois:
une application OK en Septembre (Sept, Sept, Sept)
plantera en Allemand en Octobre (Oct, Oct, Okt)
fonctionnera en Novembre (Nov, Nov, Nov)
plantera en Allemand en Decembre (Dec, Dec, Dez)
fonctionnera en Janvier (Jan, Jan, Jan)
plantera en Allemand et Anglais en Fevrier (Fev, Feb, Feb)
"François Picalausa" a écrit dans le message de news:%23p$
Bonjour/soir,
Réponse sur la faq: http://faq.vb.free.fr
Pour le moment elle semble innaccessible mais la solution consiste à
faire:
Format("0",".") ou passer par les APIs
Je prends le 'Format(0,".")' et j'ajoute le WWW a mes signets. J'avais daja eu des problemes avec les mois: une application OK en Septembre (Sept, Sept, Sept) plantera en Allemand en Octobre (Oct, Oct, Okt) fonctionnera en Novembre (Nov, Nov, Nov) plantera en Allemand en Decembre (Dec, Dec, Dez) fonctionnera en Janvier (Jan, Jan, Jan) plantera en Allemand et Anglais en Fevrier (Fev, Feb, Feb)