forcer symbole décimal

djdmd14

XLDnaute Junior
bonjour
j ai créé une macro complémentaire permettant de générer un fichier txt comportant un ean et un prix a partir d un tableau existant
Code:
Sub releve_prix()
'
' enregistre_txt Macro
' Macro enregistrée le 21/10/2008 par David OREL
'

'
If FichierExiste("c:\prixconc.unp") = True Then Call efface_unp Else

ActiveWorkbook.RefreshAll
Dim lngHFile As Long
Dim Boucle As Integer
Dim nblig As Variant
Dim ean As Range
Dim prix As Range
Dim nomfeuille As String
Dim entete As String
Dim price As String


nomfeuille = ActiveSheet.Name
entete = "N1 " & nomfeuille
On Error GoTo gestionerreur
Set ean = Application.InputBox(prompt:="Sélectionnez les gencods produits", Title:="Selection EAN", Left:=160, Top:=80, Type:=8)
Range("a1").Activate
Set prix = Application.InputBox(prompt:="Sélectionnez les prix produits", Title:="Selection Prix", Left:=15, Top:=80, Type:=8)

With Application.WorksheetFunction
nblig = .CountA(ean)


lngHFile = FreeFile
Open "c:\prixconc.unp" For Append Shared As #lngHFile
Print #lngHFile, Trim(entete)
    For Boucle = 1 To nblig Step 1
price = Format(prix.Cells(Boucle, 1).Value, "###0.###")
        Print #lngHFile, Trim(ean.Cells(Boucle, 1).Value) & "    " & Trim(price)
    Next Boucle
Close #lngHFile
DoEvents
MsgBox "Fichier sauvegardé avec succès !", vbInformation + vbOKOnly, "Succès..."
End With
Exit Sub

gestionerreur:

MsgBox "Votre relevé ne sera pas généré", vbOKOnly
If vbOK = True Then Exit Sub

End Sub
losrque j utilise cette macro sur un pc dont le symbole décimal dans les options linguistique de windows est la virgule excel me mets une virgule dans mon fichier texte ce qui me dérange car l application dans laquelle j integre le fichier généré ne tolère que le point en symbole de décimale
cela fait un moment que je cherche
petit point je ne peux pas modifier l option dans windows car cette macros est utilisé par pas mla de personne et impossible de changer sur chaque pc
j aimerais forcer l option avant la création du fichier et la rétablir quant mon fihcier est généré merci par avance
 

Pierrot93

XLDnaute Barbatruc
Re : forcer symbole décimal

Bonsoir djdmd, Wilfried:)

A partir de la version 2003, tu peux modifier et utiliser ces paramètres directement dans EXCEL. Barre de menu => options => onglet "international". Ci-dessous un code qui stocke les options de l'utilisateur, les modifie puis les rétabli en fin de procédure. A voir si cela peut t'aider :

Code:
Sub test()
Dim s As Boolean, d As String, m As String
With Application
    s = .UseSystemSeparators
    d = .DecimalSeparator
    m = .ThousandsSeparator
    .DecimalSeparator = "." 'séparateur décimale
    .ThousandsSeparator = " " 'séparateur de milliers
    .UseSystemSeparators = False
End With
'ton code

With Application
    .DecimalSeparator = d
    .ThousandsSeparator = m
    .UseSystemSeparators = s
End With
End Sub

bonne soirée
@+
 

Discussions similaires

Statistiques des forums

Discussions
312 428
Messages
2 088 331
Membres
103 816
dernier inscrit
vladmir