Macro VBA:Ajouter des zéro après une virgule [Résolu/Fermé]

Signaler
-
 Anita -
Bonjour,

Je possède deux colonnes avec des chiffres dans ce style là:

16,265 <-> 16265
19,324<-> 19324
1,25<-> 1250
1,9<-> 1900
etc...

Ces chiffres proviennent d'une extraction d'un progiciel qui me les donne tels quels, impossible de changer la mise en forme.

Le problème vient donc de la virgule, au lieu de mettre 1,900 excel me met 1,9
Donc si j'enlève toutes les virgules j'ai un problème de valeur évident.

Voici ce que je voudrais obtenir :
16,265 <-> 16265
19,324<-> 19324
1,25<-> 1250
1,9<-> 1900

Je sais quelles sont les étapes à effectuer mais je ne sais pas programmer, pouvez-vous m'aider à entre le code suivant?

si 3 chiffres après la virgules--> ne rien faire
si 2 chiffres après la virgule --> ajouter 1 zéro
si 1 chiffre après la virgule --> ajouter 2 zéros

Puis enlever la virgule
Puis faire un séparateur de millier

En espérant apprendre des choses,
Sincères salutations,
Anita

5 réponses

Petit update car petit oubli, voici donc ce que je voudrai coder:

Si pas de virgule --> ne rien faire
si 3 chiffres après la virgules--> ne rien faire
si 2 chiffres après la virgule --> ajouter 1 zéro
si 1 chiffre après la virgule --> ajouter 2 zéros

Puis enlever la virgule
Puis faire un séparateur de millier
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 76687 internautes nous ont dit merci ce mois-ci

bonjour,

A première vue, pas besoin de programmer une macro pour faire ça:

16,265 -> 16,265*1000 -> 16265
19,324 -> 19,324*1000 -> 19324
1,25 -> 1,25*1000 -> 1250
1,9 -> 1,9*1000 -> 1900

Une simple multiplication par 1000 suffit. Ensuite formater les cellules pour afficher un séparateur de millier (menu Format Cellules Nombres)

Il reste toutefois un problème
Si le progiciel donne 1,000 alors excel affiche 1 qui multiplié par 1000 donne 1000 , VRAI
Si le progiciel donne 1 alors excel affiche 1 qui multiplié par 1000 donne 1000 , FAUX

Il faudrait lire directement le fichier ecrit par le progiciel, donc en connaitre exactement sa structure.
Ou bien importer le fichier dans excel comme du texte et non comme des valeurs numériques, ensuite on pourra faire une macro.

A+
Exactement amigo, la solution de multiplier par mille serait bonne si je n'avais aucune valeur inférieur à 1000.

Le progiciel me fournit des valeurs entières (jamais de décimales) comprises entre 0 et plusieurs centaines de millions.

Certains chiffres ne possèdent pas de virgules, et multiplier ces chiffres par mille serait une erreur.

Anita
Alors c'est encore plus simple

Dans le panneau de configuration de windows, va dans options régionales, modifier le format des dates et nombres,
personnaliser, et là pour symbole décimal tu met un point "." et non une virgule ",".

Tu relances Excel.
Quand tu importe ton fichier, les valeurs sans virgule sont interprétées comme des entiers.
Les nombres avec séparateur décimal avec virgule sont interprétés comme du texte.

Il suffit alors de remplacer les virgules par rien (avec Chercher Remplacer) et le tour est joué.

Salut.
Astucieux amigo!
Merci