Salut,
j'ai un petit soucis de conservation de format numérique
description rapide :
j'ouvre un fichier texte avec excell,
je copie 2 colonnes
je ferme le fichier texte
je colle les deux colonnes dans un autre fichier
problème : la virgule disparait
config : séparateur numérique = ","
description détaillée :
j'ai un fichier texte avec des valeurs :
je l'ouvre avec excel
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 41,372203 0,000000 40,389933 0,020408 ... 62,817208 0,979592 63,749042 1,000000
(je l'enregistre juste pour debugger)
ce qui me donne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 ExcelApp.Workbooks.OpenText FileName:=nomFichierLoi, Origin _ :=xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _ xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False, _ Comma:=False, Space:=True, Other:=False ExcelApp.Range(Cells(1, 1), Cells(nbPoints, 2)).Select ExcelApp.Selection.NumberFormat = "0.000000" ' debug ExcelApp.ActiveWorkbook.SaveAs FileName:=nomFichierLoi + ".xls", _ FileFormat:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, CreateBackup:=False ' /debug
je veux copier ces deux colonnes dans un nouveau fichier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 41,372203 0,000000 40,389933 0,020408 ... 62,817208 0,979592 63,749042 1,000000
puis je ferme mon fichier vu que j'en ai plus besoin
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ExcelApp.Range("A1:B" & nbPoints).Select ExcelApp.Selection.Copy ExcelApp.ActiveWorkbook.Close (False) ' Fermeture
là j'ai un soucis, mon espion de visual m'indique que toutes mes "," ont sauté et que les valeurs comme 62,817208 sont devenues 62817208... (en exécutant l'action close) sur une seule colonne...
bizarrement sur la seconde colonne toutes les valeurs sauf le 0 et le 1 sont devenues des champs textes ("Nombre stocké sous forme de texte")
du coup quand je veux coller mes deux colonnes...
j'obtiens
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 ExcelApp.Sheets(nomLoi + "_DATA").Activate ... ExcelApp.Range(Cells(3, 2 * i - 1), Cells(2 + nbPoints, 2 * i)).Select ExcelApp.ActiveSheet.Paste
j'ai bien essayé de remettre un
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 41372203 0,000000 40389933 0,020408 (0,020408 -> "Nombre stocké sous forme de texte") ... 62817208 0,979592 (0,979592 -> "Nombre stocké sous forme de texte") 63749042 1000000
juste avant le paste mais j'obtiens
Code : Sélectionner tout - Visualiser dans une fenêtre à part ExcelApp.Selection.NumberFormat = "0.000000"
je trouve pas ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 41372203,000000 0,000000 40389933,000000 0,020408 ... 62817208,000000 0,979592 63749042,000000 1000000,000000
Partager