probleme format

Seball

XLDnaute Nouveau
Bonjour à tous,

J'ai un petit problème avec les formats. J'ai créé une macro pour ouvrir un fichier texte et formater les chiffres afin de les avoir en format "XXX XXX XXX.YY".

Ma macro est la suivante :
Workbooks.OpenText Filename:=volBM
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array( _
3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1)), TrailingMinusNumbers:=True

Columns("D:H").Select
Selection.NumberFormat = "#,##0.00"
Columns("D:H").EntireColumn.AutoFit


ActiveWorkbook.SaveAs Filename:=Left(volBM, Len(volBM) - 4) & ".xls"
ActiveWorkbook.Close savechanges:=True

Lorsque je fais un pas a pas et que je regarde le fichier avant sauvegarde, le format est OK. Par contre lorsque je le sauve et que je l'ouvre les formats ne ressemblent plus du tout a ce que j'ai demandé.

Ci-joint un zip avec le fichier source en txt et le fichier après sauvegarde en xls.

Merci d'avance pour votre aide!
 

Pièces jointes

  • DASHBM.zip
    528 bytes · Affichages: 33

Seball

XLDnaute Nouveau
Re : probleme format

Je pense que c'est un chipotage avec les formats américains/européens...Mais je ne comprends pas pourquoi avant la sauvegarde, le format s'affiche correctement mais qu'à la réouverture il me l'ouvre dans un autre format...
 

Roland_M

XLDnaute Barbatruc
Re : probleme format

bonjour

si tu veux garder ces formats 17,563,666.15
essais de mettre (') devant '17,563,666.15
ce qui en fera des chaines de caractères et donc resteront inchangés !
reste à voir ce que tu en fais après !?
 

Seball

XLDnaute Nouveau
Re : probleme format

Bonjour,

Ce que je souhaiteria savoir ce sont les formats "européens) avec des espaces comme séparateur s et un point pour les décimals, c'est-à-dire 17 563 666.15. Et lorsque sauve en excel, il me remets tout en format 17,563,666.15
 

Roland_M

XLDnaute Barbatruc
Re : probleme format

re
le point pose problème faire des essais...
exemple > 17,563,666.15
avec format personnalisé # ###,00
résultat > 17 563 666,15

EDIT
maintenant avec une macro on peut faire tout ce que l'on veut !
avec Replace()
 

Seball

XLDnaute Nouveau
Re : probleme format

J'ai mis en ligne le fichier contenant la macro (dans la partie "ThisWorkbook" de VBA)

@Roland_M :Merci pour votre aide. J'ai déjà essayé plusieurs formats, et l'affichage jusqu'à la sauvegarde est correct, mais c'est lorsque je veux re-ouvrir le fichier que le format n'est plus correct...
 

Pièces jointes

  • macro dashboardtest.xls
    45.5 KB · Affichages: 28
Dernière édition:

herve62

XLDnaute Barbatruc
Supporter XLD
Re : probleme format

Re
J'ai trouvé un truc "bidouillant" , en fait cela provient que dans ton .TXT ce ne sont pas des NOMBRES !!!
mais du texte ( Je me demande comment ca pouvait marcher avant ? ...Enfin pas chez moi)
Il faut donc convertir avant ( dans la macro4) , j'ai fait avec l'essai ci-dessous , ca marche , c'est juste pour l'idée ...... ensuite faudra adapter .... car j'ai remarqué que tu ouvres à nouveau en .TXT dans l'autre Sub ??
Code:
    ChDir "c:\test1"
    Workbooks.OpenText Filename:= _
        "c:\test1\DASHBM.txt", Origin:=437, StartRow:= _
        1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
        ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=True, Comma:=False, _
        Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), Array( _
        3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1)), _
        TrailingMinusNumbers:=True
ActiveWorkbook.SaveAs "DASHBM.xls"  ' ou Nom donné en C9
With Worksheets("DASHBM")
   For y = 2 To 4
   For x = 3 To 8
    .Cells(y, x).Value = Val(.Cells(y, x))
   Next
   Next
   Columns("D:H").Select
   Selection.Style = "Comma"
   Selection.NumberFormat = "#,##0.00"
   Columns("D:H").EntireColumn.AutoFit
End With
End Sub
Convertir avec VAL , ensuite on peut mettre "#,##0.00"
Ci joint le résultat en executant MACRO4 , là le FORMAT REste
Si cela peut te donner une piste !!!
 

Pièces jointes

  • DASHBM.xls
    13 KB · Affichages: 33

Seball

XLDnaute Nouveau
Re : probleme format

Voilà, j'ai trouvé une solution grâce à l'aide d'herve62. Au lieu d'utiliser la fonction Value, je mets 1 dans une cellule et je divise les cellules concernées par 1...

Workbooks.OpenText Filename:=volBM
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array( _
3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1)), TrailingMinusNumbers:=True
Set BM = ActiveWorkbook
BM.Worksheets(1).Range("K1").Value = 1
' ActiveCell.FormulaR1C1 = "=1"
BM.Worksheets(1).Range("K1").Select
Selection.Copy
Range("C2:G3").Select
Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlDivide, SkipBlanks:=False, Transpose:=False
Range("K1").Select
Selection.ClearContents
Columns("C:G").Select
Selection.NumberFormat = "# ##0.00"
Columns("C:G").EntireColumn.AutoFit

ActiveWorkbook.SaveAs Filename:=Left(volBM, Len(volBM) - 4) & ".xls"
ActiveWorkbook.Close savechanges:=True
 

herve62

XLDnaute Barbatruc
Supporter XLD
Re : probleme format

Bonjour
Comme tu veux , c'est ton projet , Y a que le résultat qui compte !!!!
Mais assuré , ma macro fonctionne bien , le seul truc le .txt fermé au départ et pas de DASHBM.xls existant

ps : SAS ( je connais de nom) , y a pas comme avec SAGE, BAHN , ou l'on peut traduire direct le Txt en XLS ?
 

Discussions similaires

Statistiques des forums

Discussions
312 488
Messages
2 088 862
Membres
103 979
dernier inscrit
imed