Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

[Résolu] Transformer des décimales 'point' et décimale 'virgule' d'une seule colonne

  • Initiateur de la discussion Initiateur de la discussion jrdeb
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

jrdeb

XLDnaute Nouveau
Bonjour à tous et à toutes,

L'intitulé paraît simple mais il ne l'est pas tellement (enfin pour moi...🙁)

Voilà mon problèmes: j'ai un fichier excel avec de multiples colonnes où les valeurs ont comme décimale une virgule SAUF une...

J'aimerais pouvoir convertir les '.' en ',' sachant que certaines cases de cette colonne comportent des '.' seuls correspondants à des valeurs manquantes et que je dois garder...

La colonne en question est la colonne F intitulée 'C'

Merci d'avance pour vos lumières 🙂
 

Pièces jointes

Dernière édition:
Re : Transformer des décimales 'point' et décimale 'virgule' d'une seule colonne

Bonjour sélectionne une cellule vide, copie la, sélectionne ensuite ta colonne F, collage spécial, additionner. Ca transforme ta colonne qui était au format texte en colonne de nombres que tu peux maintenant travailler normalement.
 
Re : Transformer des décimales 'point' et décimale 'virgule' d'une seule colonne

Bonjour,

Une solution, ne rien faire. Quand j'ouvre ton fichier, le séparateur décimal est déjà la virgule
et comme c'est le paramètre par défaut dans le panneau de configuration de Windows,
il n'y a rien à faire.

Depuis la version Excel 2003, tu as une option dans Excel qui te permet d'utiliser au niveau
de la feuille un séparateur décimal et de milliers différent de celui du système d'exploitation.

Sur mon ordi, tout est parfait... il n'y a aucun problème!
 
Re : Transformer des décimales 'point' et décimale 'virgule' d'une seule colonne

Hello MichD,
c'est pas tout à fait exact, j'ai eu la même impression que toi mais en fait la colonne F est en format texte, avec un . comme séparateur. Sur ton PC comme sur le mien, comme on utilise je pense tous deux le . comme séparateur décimal, ça parait OK mais si le demandeur a la , comme séparateur, toutes les colonnes seront bien avec une , sauf la F qui est en format texte.
 
Re : Transformer des décimales 'point' et décimale 'virgule' d'une seule colonne

Bonjour Misange,

Tu as raison, je ne devais pas avoir les yeux vis-à-vis des trous...;-)
J'utilise cependant la virgule comme réparateur décimal sauf quand
j'utilise l'anglais comme langue de Microsoft Office.

Il y a cette possibilité pour règler le problème

VB:
Sub test()
With Worksheets("Feuil1")
    With .Range("F:F")
        .Replace ".", ","
        .NumberFormat = "# ##0.####"
        .Replace ",", "."
    End With
End With
End Sub
 
Dernière édition:
Re : Transformer des décimales 'point' et décimale 'virgule' d'une seule colonne

Bonsoir à tous


Une autre piste possible : Données/Convertir -> (à l'étape 3) -> Avancés /Séparateur de décimales : .
Ci-dessous code VBA , mais plus simple de le faire manuellement
VB:
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 11/07/2012

    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 1), DecimalSeparator:=".", TrailingMinusNumbers:=True
End Sub

PS: Dans le code ci-dessus c'est la colonne A qui est traitée et les données d'origine sont écrasées (mais on peut choisir une autre cellule de destination )
 
Dernière édition:
Re : Transformer des décimales 'point' et décimale 'virgule' d'une seule colonne

Merci à tous de vos réponses 😉...
J'ai essayé la méthode de misange et malheureusement ça n'a rien changé. Je n'ai pas eu le temps de tester les macro, on a du évacuer le bâtiment pour fuite de produits dangereux...
J'essaie ça demain si le bâtiment est de nouveau accessible...

Encore merci,

jrdeb
 
Re : Transformer des décimales 'point' et décimale 'virgule' d'une seule colonne

Bonjour le forum,

Le fichier Excel cliquer sur le Rouge de la colonne F
pour lancer la macro.


VB:
 Sub Virgule()

 ' Pramétrage Feuille + Tableau
 Dim T() As Variant
 Dim F1 As Worksheet
 Set F1 = ThisWorkbook.Worksheets("Feuil1")

' Tableau
Fin = F1.Range("F65536").End(xlUp).Row
T = F1.Range(Cells(2, 6), F1.Cells(Fin, 6))

' Redimenion du tableau soit deux colonne supplémentaire
' la deuxieme colonne est vide c'est justement pour la
' remplire aumoyen de cette fonctionque l'on va faire
' plus bas la fonction Remplace et entre parenthése
' ont place les arguments renvoyer a la fonction

 ReDim Preserve T(1 To Fin - 1, 1 To 2)
 
' Boucle
 For i = 1 To UBound(T, 1)
     Res = Remplace(i, T)
 Next i
 
 ' Restitution des valeur par substitution des
 ' valeur présente dans la colonne dans la colnne F
 ' Itituler C

      F1.Cells(2, 6).Resize(UBound(T, 1)) = Application.Index(T, , 2)
  
 ' efface tous le Tableau T()
 Erase T
 
 ' Selectionne la colonne F (Cellule F2)
 ' Pour le curseur
Cells(2, 6).Select
End Sub

Function Remplace(i, T)

' Fonction avec un tableau qui peux reservir
' le cas echéant pour d'autres colonne
' ou d'autres idées

' Longueur des caractéres dans la Chaine c'est a dire
' par defaut tous se qui est supérieur a 1 doit etre
' modifier = Astuce

 Longeur = Len(T(i, 1))

' Test
' Si la longeur est supérieur a 1 c'est
' qu'il faut changer le . par une virgule
' On rempli la colonne 2 vides du tableau
' en fonction de la condition

If Longeur > 1 Then
T(i, 2) = Replace(T(i, 1), ".", ",") ' ici on substitu le . par la Virgule donc Longeur Supérieur a 1
Else
T(i, 2) = T(i, 1) ' ici rien car inférieur a 1 (donc on rempli par la meme chose)
End If

Remplace = T ' ici ont revois le tableau car c'est une foncion qui attend un résultat

End Function

J'ai essayer d'expliquer la macro en espérent que cela vous convienne
au plaisir de vous lire et répondre a vos questions

laurent
 

Pièces jointes

Re : Transformer des décimales 'point' et décimale 'virgule' d'une seule colonne

Bonsoir à tous,

On peut aussi utiliser "remplacer par":
  • Sélectionner les colonnes concernées
  • Appliquez le format alignement horizontal => standard, vous pourrez ainsi vous assurer que le remplacement a bien converti vos valeurs en nombre (alignement des nombres à droite, alignement du texte à gauche => visible sur la colonne F)
  • Les colonnes étant toujours sélectionnées, appeler la boite de dialogue "Remplacer par" ( Ctrl+H)
  • Remplacer le point . par @ (ou tout autre caractère n'apparaissant pas dans le tableau) après avoir coché l'option "Totalité du contenu de la cellule"
  • Dans la boite de dialogue toujours ouverte, remplacer le point . par la virgule , après avoir décoché l'option "Totalité du contenu de la cellule"
  • Dans la boite de dialogue toujours ouverte, remplacer @ par le point .
 
Dernière édition:
Re : Transformer des décimales 'point' et décimale 'virgule' d'une seule colonne


Super ça fonctionne!

Un grand merci à tous pour votre temps passé à résoudre mon petit problème, j'en suis gêné 😱 😱
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…