Obliger format standard avec point et non virgule

Trinitybarb

XLDnaute Junior
Bonjour,

Je dois créer un tableau qui sera envoyé à différentes personnes (donc différents formats d'ordinateurs) et de version.

Dans une des colonnes je voudrais absolument que ça soit des chiffres en format standard et avec point et deux décimales après le point pas de virgule.

Ça doit-être comme ça : 666.99 ou 10000.10 (pas d'espaces décimales)

Et tout cela pour ma colonne 11

Je sais qu'on peut y aller par code, mais je manque d'expérience donc je me tourne vers vous :)

J'ai essayé avec la méthode validation de données mais je trouve rien.

Merci et bonne journée.

Trinitybarb
 

Victor21

XLDnaute Barbatruc
Re : Obliger format standard avec point et non virgule

Bonjour.

Pour que vos nombres soient considérés comme tels par Excel, utilisez le séparateur décimal défini dans les options avancées, options d'édition. L'affichage dépendra du format de cellule que vous définirez (Accueil, Nombre sur XL2010).
 

Trinitybarb

XLDnaute Junior
Re : Obliger format standard avec point et non virgule

non je veux obligé que ça soit un point ou le faire changer automatiquement car le fichier ne restera pas sur mon ordi quand il sera complété par les gens mais il ira à une autre personne et je ne connais son formatage. Je sais que ça se fait avec un code car j'ai une colonne code postale qui est fait de cette façon. J'ai trouvé un code sur internet mais il modifie automatique le point par une virgule mais lorsque je veux corriger ce code pour le contraire, ça fonctionne pas :(
 

Victor21

XLDnaute Barbatruc
Re : Obliger format standard avec point et non virgule

Re,

Il est peu fréquent d'effectuer des calculs sur un code postal. Aucun inconvénient donc à ce que ce soit du texte.
Pour le reste, peut-être ai-je mal compris le fichier que vous avez -ou pas- joint en exemple avec ce fameux code.
 

Trinitybarb

XLDnaute Junior
Re : Obliger format standard avec point et non virgule

voici ce que j'ai trouvé et qui remplace auto le point par une virgule mais mois je veux le contraire

-------------------------------------------------------------------------
Option Explicit

Const entrees_decimales_permises = ".,0123456789" & vbCr & vbBack
Const entrees_entieres_permises = "0123456789" & vbCr & vbBack
Const Point = "."
Const Virgule = ","

' Remplace une saisie accidentelle d'un POINT par une VIRGULE
' permet donc l'utilisation du pavé numérique et n'admettra
' pas la saisie d'un second séparateur décimal
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = Asc(Point) Then
If InStr(TextBox1, Virgule) = 0 Then
KeyAscii = Asc(Virgule)
Else
KeyAscii = 0
End If
ElseIf InStr(entrees_decimales_permises, Chr(KeyAscii)) = 0 Then
KeyAscii = 0
ElseIf InStr(TextBox1, Virgule) > 0 And KeyAscii = Asc(Virgule) Then
KeyAscii = 0
End If

If KeyAscii = 13 Then SendKeys "{TAB}": KeyAscii = 0
End Sub
 

Victor21

XLDnaute Barbatruc
Re : Obliger format standard avec point et non virgule

Re,

Essayez :

VB:
Sub Macro1()


    With Application
        .DecimalSeparator = "."
        .UseSystemSeparators = False
    End With
End Sub
(Code donné par l'enregistreur, à mettre dans le module ThisWorkbook en remplaçant sub Macro1() par Private Sub Workbook_Open())
 

JCGL

XLDnaute Barbatruc
Re : Obliger format standard avec point et non virgule

Bonjour à tous,
Salut Patrick,

Pour remettre Excel comme on l'a ouvert :

VB:
Option Explicit
Dim SepDec As String, SepMil As String


Private Sub Workbook_BeforeClose(Cancel As Boolean)
    With Application
        .DecimalSeparator = SepDec
        .ThousandsSeparator = SepMil
    End With
End Sub


Private Sub Workbook_Open()
SepDec = Application.DecimalSeparator
SepMil = Application.ThousandsSeparator
    With Application
        .DecimalSeparator = "."
        .ThousandsSeparator = ""
    End With
End Sub

A+ à tous
 

Trinitybarb

XLDnaute Junior
Re : Obliger format standard avec point et non virgule

voici mon code pour l'instant. Il oblige la majuscule partout et le code postal canadien dans le bon format.

Il me reste juste à mettre à la colonne 11 une obligation de . sans espace donc en standard : 1029.98

-----------------------------

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range
If Target.Count = 1 Then
Set Rg = Intersect(Target, Columns(20))
Application.EnableEvents = False
If Not Rg Is Nothing Then
For Each c In Rg
c.Value = UCase(Application.Trim(c))
If c.Value Like "[A-Z][0-9][A-Z] [0-9][A-Z][0-9]" Or _
c.Value Like "[A-Z][0-9][A-Z][0-9][A-Z][0-9*]" Then
c.Value = Left(c, 3) & " " & Right(c, 3)
c.Interior.ColorIndex = xlNone
c.Font.ColorIndex = xlAutomatic
ElseIf c.Value <> "" Then
MsgBox "la saisie du code postal est inexacte"
c.Interior.ColorIndex = 3
c.Font.ColorIndex = 2
Else
c.Interior.ColorIndex = xlNone
c.Font.ColorIndex = xlAutomatic
End If
Next
End If
Application.EnableEvents = True
'part2
If Target.Row = 1 Then Exit Sub
If Not IsNumeric(Target) Then
codeA = "ÉÈÊËÔéèêëàçùôûïî"
codeB = "EEEEOeeeeacuouii"
temp = Target
For i = 1 To Len(Target)
p = InStr(codeA, Mid(Target, i, 1))
If p > 0 Then Mid(temp, i, 1) = Mid(codeB, p, 1)
Next
Application.EnableEvents = False
Target = UCase(temp)
Else:
Application.EnableEvents = False
End If
Application.EnableEvents = True
End If
End Sub
--------------------------------------------------------
 

Trinitybarb

XLDnaute Junior
Re : Obliger format standard avec point et non virgule

Mon fichier est une feuille de donné pour des feuilles fiscaux. Donc aucun calcul juste des infos personnels avec adresse, NAS, code postal et la colonne du montant imposable que je veux avec point et sans espace : 1999.88

C'est pour cela que je veux obliger la colonne à être avec un point.
 

Trinitybarb

XLDnaute Junior
Re : Obliger format standard avec point et non virgule

Pour plus simple, est-ce que je pourrais mettre dans Validation des données, un critère personnalisé qui dirait : ne content pas , donc obligerait le point et ne contient pas espace .... serait-ce une solution ?
 

Trinitybarb

XLDnaute Junior
Re : Obliger format standard avec point et non virgule

c'est beau j'ai réglé mon problème. Merci :) à tous. J'avais oublié de fermer mon fichier et de le réouvrir pour faire fonctionner la macro dans le ThisWorkbook, on voit que je manque d'expérience la dessus :)
 

Trinitybarb

XLDnaute Junior
Re : Obliger format standard avec point et non virgule

Re,

Essayez :

VB:
Sub Macro1()


    With Application
        .DecimalSeparator = "."
        .UseSystemSeparators = False
    End With
End Sub
(Code donné par l'enregistreur, à mettre dans le module ThisWorkbook en remplaçant sub Macro1() par Private Sub Workbook_Open())

Nonnnnn ça fonctionne pas.

Lorsque j'inscris le nombre avec le clavier numérique c'est ok mais si je prends la virgule et les chiffres où le clavier de lettre, ça fonctionne pas :(

je sais que certaines personnes vont utiliser les chiffres du clavier de lettre......
 

Discussions similaires

Statistiques des forums

Discussions
312 196
Messages
2 086 095
Membres
103 116
dernier inscrit
kutobi87