Délimitateur de milliers

Magic_Doctor

XLDnaute Barbatruc
Bonjour,

Je suis à la recherche d'une FONCTION qui permettrait de délimiter les milliers. Je m'explique :
1000 ---> 1.000
10000 ---> 10.000
100000 ---> 100.000
1000000 ---> 1.000.000
etc.

Merci d'avance
 

13GIBE59

XLDnaute Accro
Re : Délimitateur de milliers

Bonjour Magic Doctor, Hoerwind.

Une première approche simple :
dans Format -> Cellule, onglet Nombre, choisir Catégorie 'Nombre' et cocher
"Utiliser le séparateur de milliers".
 

Pièces jointes

  • Séparateur.jpg
    Séparateur.jpg
    28.2 KB · Affichages: 264

Magic_Doctor

XLDnaute Barbatruc
Re : Délimitateur de milliers

Merci hoerwind & 13GIBE59 pour vos suggestions.

Je savais qu'il existe plusieurs moyens pour délimiter les milliers, y compris via "format personnalisé" (#.#00).
L'avantage de vos solutions est que le résultat est TOUJOURS un chiffre.
Ce que je voudrais, c'est en fait récupérer une chaîne de caractères, que je pourrai mettre en forme par la suite. Le résultat ne sera en aucune façon utilisé dans des calculs.

Supposons que cette fonction s'intitule "DelMil" :

J'ai, dans la cellule A1 un résultat NUMÉRIQUE : 200000
Dans la cellule A2 j'écris : = DelMil(A1), j'obtiendrai alors la CHAÎNE : 200.000
 

Tibo

XLDnaute Barbatruc
Re : Délimitateur de milliers

Bonjour,

Une tentative avec :

Code:
=SUBSTITUE(TEXTE(A1;"# ##0");" ";".")

Souci, ça n'est plus du chiffre. Et faire des calculs avec devient un peu plus complexe.

Je te laisse tester

@+
 

JNP

XLDnaute Barbatruc
Re : Délimitateur de milliers

Buenas notches Doctor, salut Hoerwind et Jean-Bernard :),
Vois la pièce jointe. Mais à priori, je n'ai pas pu dépasser les 15 décimales (j'espère que ça te suffira :p).
Asta la vista :cool:
Ajout : bonsoir Tibo
 

Pièces jointes

  • Séparateurs milliers.xls
    36.5 KB · Affichages: 82
Dernière édition:

Magic_Doctor

XLDnaute Barbatruc
Re : Délimitateur de milliers

Bonsoir à tous ceux qui m'ont répondu,

La solution de JNP fait parfaitement l'affaire en dépit de sa "limitation" que je ne franchirai jamais dans mes calculs.
Certainement en faisant une boucle on pourrait aller jusqu'à l'infini... Le problème n'est pas dénué d'intérêt, du moins pour l'esprit.

Merci à tous.
 

job75

XLDnaute Barbatruc
Re : Délimitateur de milliers

Bonjour Magic Doctor, le fil, le forum,

En utilisant Application.Replace (REMPLACER) :

Code:
Function Milliers(Nombre As Double) As String
Dim i As Integer
Application.Volatile
Milliers = Int(CDec(Nombre)) 'partie entière
For i = Len(Milliers) - 2 To 2 [COLOR="Red"]- (Nombre < 0)[/COLOR] Step -3
Milliers = Application.Replace(Milliers, i, 0, ".")
Next
End Function

Edit : ajouté le code en rouge pour traiter correctement les nombres négatifs.

Fichier de JNP joint.

A+
 

Pièces jointes

  • Séparateurs milliers(1).xls
    47 KB · Affichages: 69
Dernière édition:

JNP

XLDnaute Barbatruc
Re : Délimitateur de milliers

Bonjour le fil :),
Merci, Job75, tu m'as obligé a une reflexion très positive :p. Je n'avais jamais utilisé un Replace pour insérer des valeurs (généralement, je passe par une concaténation de la chaine de départ), et j'ai cherché un moment pour comprendre que tu utilisais le Replace des WorksheetFunction, et non le Replace VBA :eek:... Je me le garde sous le coude, c'est plutôt sympa :D.
Au début, j'étais parti sur la solution de Tibo, mais via VBA, et ça ne marchait pas :eek:. D'où ma surprise que par formule, celle de Tibo fonctionne parfaitement :confused:...
Un peu tétu (comme d'autres sur ce forum :rolleyes:), j'ai repris le système, et finalement j'ai trouvé où étaient les problèmes :
1) La fonction Format n'attends pas "# ##0" en VBA, mais "#,##0"...
2) Elle ne renvoie pas des blancs normaux (Chr(32)), mais des blancs insécables (Chr(160))...
D'où une traduction de la formule de Tibo, mais en fonction VBA, et sans la limite des 15 :)
Code:
Function Milliers(Nombre As Double) As String
Application.Volatile
Milliers = Replace(Format(Nombre, "#,##0"), Chr(160), ".")
End Function
Bon dimanche :cool:
 

Discussions similaires

Statistiques des forums

Discussions
314 450
Messages
2 109 726
Membres
110 552
dernier inscrit
jasson