Grace à un logiciel SAS, je confectionne un fichier Html que je suffixe en
.xls pour en faire un fichier excel.
Ce fichier excel contient des montants numériques avec décimales, le "."
(point) étant le caractère standard de séparation des décimales.
1. quand je double-clique sur le fichier .xls, excel s'ouvre et le fichier
est chargé. Les montants avec décimales sont devenus des montants avec
virgules et je peux faire des sommations sur ces montants sans problème
(celà vient du fait que, dans mes paramètres locaux, j'ai précisé que le
séparateur de décimales est la virgule).
2. par contre, à partir de mon logiciel SAS, je peux lancer automatiquement
excel (start excel) avec le fichier à ouvrir. Dans ce cas, excel se lance,
le fichier s'ouvre mais les montants décimaux restent avec un point comme
séparateur et je ne peux pas faire de sommations.
J'ai ce même soucis quand je lance d'abord excel tout seul, puis je fais
ouvrir du fichier .xls.
Je suis en excel 2000.
quelqu'un serait-il comment contourner ce problème ?
y a t il des options dans l'ordre "start excel" pour lui forcer la prise en
compte des paramètres locaux et, dans le cas 2 ci-dessus, transformer les
points en virgules (comme cela est le cas naturellement dans le cas 1 ci
dessus) ?
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
michdenis
Bonsoir Tonts,
En supposant que ce soit seulement un problème de séparateurs décimales, la procédure suivante enlève si présent le caractère ayant le code ascii 160 souvent présent lors d'importation et modifie le séparateur décimale par celui du système d'exploitation (panneau de configuration) .
N.B. Si tu as un séparateur des milliers présents, cela peut aussi être problématique.
Dans la procédure suivante, tu dois adapter 2 choses : Le nom de la feuille et la plage de tes données dans les lignes de code suivantes.
'Ceci c'est si tu as des plages de cellules discontinues With Worksheets("Feuil1") Set Rg = Union(.Range("A1:A10"), .Range("C1:C10"))
Pour une plage de cellules en continue, ceci est suffisant : With Worksheets("Feuil1") Set Rg = .Range("A1:A10)
'------------------------------------- Sub ModifierParametreDecimalApresImportation()
Dim A As String, Are As Range, Rg As Range Dim S As XlApplicationInternational S = xlDecimalSeparator A = Application.International(S) If A = "," Then A = "." Else A = "," End If
With Worksheets("Feuil1") Set Rg = Union(.Range("A1:A10"), .Range("C1:C10")) For Each Are In Rg.Areas With Are .TextToColumns Destination:=Are(1, 1), _ DataType:=xlFixedWidth, FieldInfo:=Array(0, 1), _ DecimalSeparator:=A, TrailingMinusNumbers:úlse .Replace Chr(160), "" End With Next End With Set Rg = Nothing: Set Are = Nothing
End Sub '-------------------------------------
Salutations!
"tonts" a écrit dans le message de news:40db8448$0$308$ Bonjour,
Grace à un logiciel SAS, je confectionne un fichier Html que je suffixe en .xls pour en faire un fichier excel. Ce fichier excel contient des montants numériques avec décimales, le "." (point) étant le caractère standard de séparation des décimales.
1. quand je double-clique sur le fichier .xls, excel s'ouvre et le fichier est chargé. Les montants avec décimales sont devenus des montants avec virgules et je peux faire des sommations sur ces montants sans problème (celà vient du fait que, dans mes paramètres locaux, j'ai précisé que le séparateur de décimales est la virgule).
2. par contre, à partir de mon logiciel SAS, je peux lancer automatiquement excel (start excel) avec le fichier à ouvrir. Dans ce cas, excel se lance, le fichier s'ouvre mais les montants décimaux restent avec un point comme séparateur et je ne peux pas faire de sommations. J'ai ce même soucis quand je lance d'abord excel tout seul, puis je fais ouvrir du fichier .xls.
Je suis en excel 2000.
quelqu'un serait-il comment contourner ce problème ? y a t il des options dans l'ordre "start excel" pour lui forcer la prise en compte des paramètres locaux et, dans le cas 2 ci-dessus, transformer les points en virgules (comme cela est le cas naturellement dans le cas 1 ci dessus) ?
Merci d'avance pour vos renseignements
Pascal
Bonsoir Tonts,
En supposant que ce soit seulement un problème de séparateurs décimales, la procédure suivante enlève si présent le
caractère ayant le code ascii 160 souvent présent lors d'importation et modifie le séparateur décimale par celui du
système d'exploitation (panneau de configuration) .
N.B. Si tu as un séparateur des milliers présents, cela peut aussi être problématique.
Dans la procédure suivante, tu dois adapter 2 choses : Le nom de la feuille et la plage de tes données dans les lignes
de code suivantes.
'Ceci c'est si tu as des plages de cellules discontinues
With Worksheets("Feuil1")
Set Rg = Union(.Range("A1:A10"), .Range("C1:C10"))
Pour une plage de cellules en continue, ceci est suffisant :
With Worksheets("Feuil1")
Set Rg = .Range("A1:A10)
'-------------------------------------
Sub ModifierParametreDecimalApresImportation()
Dim A As String, Are As Range, Rg As Range
Dim S As XlApplicationInternational
S = xlDecimalSeparator
A = Application.International(S)
If A = "," Then
A = "."
Else
A = ","
End If
With Worksheets("Feuil1")
Set Rg = Union(.Range("A1:A10"), .Range("C1:C10"))
For Each Are In Rg.Areas
With Are
.TextToColumns Destination:=Are(1, 1), _
DataType:=xlFixedWidth, FieldInfo:=Array(0, 1), _
DecimalSeparator:=A, TrailingMinusNumbers:úlse
.Replace Chr(160), ""
End With
Next
End With
Set Rg = Nothing: Set Are = Nothing
End Sub
'-------------------------------------
Salutations!
"tonts" <tonts@club-internet.fr> a écrit dans le message de news:40db8448$0$308$7a628cd7@news.club-internet.fr...
Bonjour,
Grace à un logiciel SAS, je confectionne un fichier Html que je suffixe en
.xls pour en faire un fichier excel.
Ce fichier excel contient des montants numériques avec décimales, le "."
(point) étant le caractère standard de séparation des décimales.
1. quand je double-clique sur le fichier .xls, excel s'ouvre et le fichier
est chargé. Les montants avec décimales sont devenus des montants avec
virgules et je peux faire des sommations sur ces montants sans problème
(celà vient du fait que, dans mes paramètres locaux, j'ai précisé que le
séparateur de décimales est la virgule).
2. par contre, à partir de mon logiciel SAS, je peux lancer automatiquement
excel (start excel) avec le fichier à ouvrir. Dans ce cas, excel se lance,
le fichier s'ouvre mais les montants décimaux restent avec un point comme
séparateur et je ne peux pas faire de sommations.
J'ai ce même soucis quand je lance d'abord excel tout seul, puis je fais
ouvrir du fichier .xls.
Je suis en excel 2000.
quelqu'un serait-il comment contourner ce problème ?
y a t il des options dans l'ordre "start excel" pour lui forcer la prise en
compte des paramètres locaux et, dans le cas 2 ci-dessus, transformer les
points en virgules (comme cela est le cas naturellement dans le cas 1 ci
dessus) ?
En supposant que ce soit seulement un problème de séparateurs décimales, la procédure suivante enlève si présent le caractère ayant le code ascii 160 souvent présent lors d'importation et modifie le séparateur décimale par celui du système d'exploitation (panneau de configuration) .
N.B. Si tu as un séparateur des milliers présents, cela peut aussi être problématique.
Dans la procédure suivante, tu dois adapter 2 choses : Le nom de la feuille et la plage de tes données dans les lignes de code suivantes.
'Ceci c'est si tu as des plages de cellules discontinues With Worksheets("Feuil1") Set Rg = Union(.Range("A1:A10"), .Range("C1:C10"))
Pour une plage de cellules en continue, ceci est suffisant : With Worksheets("Feuil1") Set Rg = .Range("A1:A10)
'------------------------------------- Sub ModifierParametreDecimalApresImportation()
Dim A As String, Are As Range, Rg As Range Dim S As XlApplicationInternational S = xlDecimalSeparator A = Application.International(S) If A = "," Then A = "." Else A = "," End If
With Worksheets("Feuil1") Set Rg = Union(.Range("A1:A10"), .Range("C1:C10")) For Each Are In Rg.Areas With Are .TextToColumns Destination:=Are(1, 1), _ DataType:=xlFixedWidth, FieldInfo:=Array(0, 1), _ DecimalSeparator:=A, TrailingMinusNumbers:úlse .Replace Chr(160), "" End With Next End With Set Rg = Nothing: Set Are = Nothing
End Sub '-------------------------------------
Salutations!
"tonts" a écrit dans le message de news:40db8448$0$308$ Bonjour,
Grace à un logiciel SAS, je confectionne un fichier Html que je suffixe en .xls pour en faire un fichier excel. Ce fichier excel contient des montants numériques avec décimales, le "." (point) étant le caractère standard de séparation des décimales.
1. quand je double-clique sur le fichier .xls, excel s'ouvre et le fichier est chargé. Les montants avec décimales sont devenus des montants avec virgules et je peux faire des sommations sur ces montants sans problème (celà vient du fait que, dans mes paramètres locaux, j'ai précisé que le séparateur de décimales est la virgule).
2. par contre, à partir de mon logiciel SAS, je peux lancer automatiquement excel (start excel) avec le fichier à ouvrir. Dans ce cas, excel se lance, le fichier s'ouvre mais les montants décimaux restent avec un point comme séparateur et je ne peux pas faire de sommations. J'ai ce même soucis quand je lance d'abord excel tout seul, puis je fais ouvrir du fichier .xls.
Je suis en excel 2000.
quelqu'un serait-il comment contourner ce problème ? y a t il des options dans l'ordre "start excel" pour lui forcer la prise en compte des paramètres locaux et, dans le cas 2 ci-dessus, transformer les points en virgules (comme cela est le cas naturellement dans le cas 1 ci dessus) ?
Merci d'avance pour vos renseignements
Pascal
tonts
Salut,
Merci pour ta réponse mais mon soucis est un peu différent.
En effet, sous SAS, je confectionne des tableaux de tailles variables (en lignes et colonnes), contenant aléatoirement des nombres ou du texte.
Mon soucis c'est , sous SAS, quand je lance l'ordre 'start excel' avec le fichier .xls à ouvrir, il n'y a pas conversoin des zones numériques avec décimales en version "française" avec une virgule séparateur... (alors que ca marche parfaitement si j'enregistre le fichier .xls et que je double-clique dessus).
En fait, c'est exactement la même chose hors SAS.
En effet, si tu as un excel avec une zone xx.xx "numérique" (fichier .txt confectionné sous NotePad où tu mets par exemple 12.23 puis sous explorateur, tu renommes le fichier en .xls). Tu doubles clique sur le fichier .xls et tu vois que le 12.23 devient 12,23 .......... oh miracle
Mais si tu ouvres d'abord excel puis que tu charges ce fichier .xls, (outre la mise en forme des séparateurs de zones) tu vois que le format "standard" de la zone reste 12.23 sans transformation en virgule décimales.
Et c'ets bien là mon soucis... comment lancer excel depuis une application en lui forçant la transformation des "points" en "virgules" décimales ==> sans application de macros VBA....
Si quelqu'un a un truc ????!!!! (j'ai cherché veinement sur Internet en français, anglais.... rien trouvé)...
HELPPPPPPPP
Pascal
Salut,
Merci pour ta réponse mais mon soucis est un peu différent.
En effet, sous SAS, je confectionne des tableaux de tailles variables (en
lignes et colonnes), contenant aléatoirement des nombres ou du texte.
Mon soucis c'est , sous SAS, quand je lance l'ordre 'start excel' avec le
fichier .xls à ouvrir, il n'y a pas conversoin des zones numériques avec
décimales en version "française" avec une virgule séparateur... (alors que
ca marche parfaitement si j'enregistre le fichier .xls et que je
double-clique dessus).
En fait, c'est exactement la même chose hors SAS.
En effet, si tu as un excel avec une zone xx.xx "numérique" (fichier .txt
confectionné sous NotePad où tu mets par exemple 12.23 puis sous
explorateur, tu renommes le fichier en .xls). Tu doubles clique sur le
fichier .xls et tu vois que le 12.23 devient 12,23 .......... oh
miracle
Mais si tu ouvres d'abord excel puis que tu charges ce fichier .xls, (outre
la mise en forme des séparateurs de zones) tu vois que le format "standard"
de la zone reste 12.23 sans transformation en virgule décimales.
Et c'ets bien là mon soucis... comment lancer excel depuis une application
en lui forçant la transformation des "points" en "virgules" décimales ==>
sans application de macros VBA....
Si quelqu'un a un truc ????!!!! (j'ai cherché veinement sur Internet en
français, anglais.... rien trouvé)...
Merci pour ta réponse mais mon soucis est un peu différent.
En effet, sous SAS, je confectionne des tableaux de tailles variables (en lignes et colonnes), contenant aléatoirement des nombres ou du texte.
Mon soucis c'est , sous SAS, quand je lance l'ordre 'start excel' avec le fichier .xls à ouvrir, il n'y a pas conversoin des zones numériques avec décimales en version "française" avec une virgule séparateur... (alors que ca marche parfaitement si j'enregistre le fichier .xls et que je double-clique dessus).
En fait, c'est exactement la même chose hors SAS.
En effet, si tu as un excel avec une zone xx.xx "numérique" (fichier .txt confectionné sous NotePad où tu mets par exemple 12.23 puis sous explorateur, tu renommes le fichier en .xls). Tu doubles clique sur le fichier .xls et tu vois que le 12.23 devient 12,23 .......... oh miracle
Mais si tu ouvres d'abord excel puis que tu charges ce fichier .xls, (outre la mise en forme des séparateurs de zones) tu vois que le format "standard" de la zone reste 12.23 sans transformation en virgule décimales.
Et c'ets bien là mon soucis... comment lancer excel depuis une application en lui forçant la transformation des "points" en "virgules" décimales ==> sans application de macros VBA....
Si quelqu'un a un truc ????!!!! (j'ai cherché veinement sur Internet en français, anglais.... rien trouvé)...