Résolu XL 2019 VBA - Problème lors de la conversion de points en virgules

zenkee

XLDnaute Nouveau
Bonjour à tous,

J'ai créé une macro permettant de transformer des points en virgules car des données ont des "." ou des "," pour séparer les décimales.
Lorsqu'un nombre a plusieurs chiffres après la virgule (ex : 1965,11999999998), la macro supprime complètement la virgule (l'exemple donne : 196511999999998).
L'exemple est joint.

Sauriez-vous la raison et comment faire en sorte que cela n'arrive pas ?

Merci d'avance,
 
Ce fil a été résolu! Aller à la solution…

Fichiers joints

Dudu2

XLDnaute Impliqué
Bonjour,
Essaie cette fonction.
VB:
Sub MettreAuFormatDécimal()
    Dim Cellule As Range
    Const Colonne = 3
   
    For Each Cellule In ActiveSheet.UsedRange.Columns(Colonne).Cells
        If Not IsNumeric(Cellule.Value) Then
            Cellule.Value = Cellule.Value
        End If
    Next Cellule
End Sub
 
Ce message a été identifié comme étant une solution!

Dudu2

XLDnaute Impliqué
La raison c'est que la virgule est un caractère de séparation décimale issu des paramètres de langue.
Ce n'est pas un choix de l'utilisateur qui obtient une virgule quand il tape le point au clavier numérique.

En VBA quoi qu'il arrive, le séparateur décimal est le point (séparateur anglo-saxon).

Au départ la cellule contient une chaine de caractères car 123.45 en français n'est pas un nombre.
Pourquoi ? Ça vient de la manière dont ont été valorisées les cellules. Je ne sais pas comment.

Cellule.Value = Cellule.Value ?
En affectant une valeur chaine contenant des chiffres et un point dans la cellule, VBA reconnait une valeur numérique décimale et va la convertir en nombre décimal qui sera ré-affecté à la cellule qui verra alors son séparateur se transformer en virgule car tu as un Excel français.
 
Ce message a été identifié comme étant une solution!
Dernière édition:

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas