[Excel] harmoniser les décimales

[Résolu]
Signaler
Messages postés
20
Date d'inscription
jeudi 13 novembre 2008
Statut
Membre
Dernière intervention
19 juillet 2013
-
Messages postés
33195
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 août 2021
-
Bonjour à tous :)

Voici mon pb : j'ai fait une extraction excel d'un logiciel et elle se présente sous la forme suivante :

-237.339,40 * -937,67 -27.648,55
1.231,46 7.081,18 -5.849,72
-3.161,85 * -588.50
12.471,70 *
28.000,00
95.24

Mon pb réside dans le fait que j'ai à la fois des "."et des "," en tant que décimale : existe-t-il un moyen d'harmoniser le tout afin d'avoir une cellule qui soit exploitable ?
(ex : 95.24 : reste 95.24 mais que 237.339,40 => 237 339.40)

J'ai essayer pas mal de petite choses mais je n'ai pas encore tenter une macro qui sonderai chaque cellule et tester si elle est correct si non : modification.

Je reste novice en la matière et je ne suis pas sur de l'avoir mis dans le bon fofo, désolé si c'est le cas !

En tout cas merci pour votre attention :)

8 réponses

Messages postés
33195
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 août 2021
351
Oups...
Petite correction du code à utiliser pour réaliser votre traitement
J'avais oublié d'utiliser le SPLIT....
Sub modif_cellules2()
Dim MaPlage As Range
Set MaPlage = Range("A1:D10")
Dim temp As String

For Each c In MaPlage
    temp = ""
    valCellule = c.Value
    ' SPLIT au cas où plusieurs nombres seraient présents dans la même cellule
    splitcell = Split(valCellule, " ")
     ' Boucle sur chaque nombre
    For i = 0 To UBound(splitcell)
        If InStr(1, splitcell(i), ",", vbTextCompare) > 0 And InStr(1, splitcell(i), ".", vbTextCompare) > 0 Then
        ' Si On trouve un Point ET une virgule dans la cellule -> Modification
        ' On remplace les points par des espaces
            temp = temp & " " & Replace(splitcell(i), ".", " ")
        Else
            temp = temp & " " & splitcell(i)
        End If
    Next
    c.Value = temp 'on réécrit la cellule
    
Next

End Sub



Cordialement,
Jordane
_____________________________________________________
Règles du forum à lire avant de poster une question : ICI
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Bonjour,
je ne suis pas sur de l'avoir mis dans le bon fofo, désolé si c'est le cas !

Si par "fofo", tu entends "forum", c'est le bon.
Ru n'es par contre définitivement et clairement pas dans la bonne section du dit forum.
Et il n'est vraiment pas "insurmontable" de faire l'effort, lorsque l'on ouvre une discussion, de dérouler la liste des sections et d'y choisir celle qui correspond à son langage de développement (ne me dis surtout pas que tu l'ignores, hein ...!)
Désolé de te le dire aussi abruptement, mais tu tombes mal et nous sommes maintenant trop nombreux à ne plus pouvoir accepter certaines "légèretés" !
Je passe ! (ce sera dorénavant ainsi).

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Messages postés
33195
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 août 2021
351
Bonsoir.

Utilisez REPLACE

Cordialement,
Jordane
_____________________________________________________
Règles du forum à lire avant de poster une question : ICI
Messages postés
33195
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 août 2021
351
Sub modif_cellules2()
Dim MaPlage As Range
Set MaPlage = Range("A1:D10")

For Each c In MaPlage
    valCellule = c.Value
    ' SPLIT au cas où plusieurs nombres seraient présents dans la même cellule
    splitcell = Split(valCellule, " ")
     ' Boucle sur chaque nombre
    For i = 0 To UBound(splitcell)
        If InStr(1, valCellule, ",", vbTextCompare) > 0 And InStr(1, valCellule, ".", vbTextCompare) > 0 Then
        ' Si On trouve un Point ET une virgule dans la cellule -> Modification
        ' On remplace les points par des espaces
            c.Value = Replace(valCellule, ".", " ")
        End If
    Next
Next

End Sub



Cordialement,
Jordane
_____________________________________________________
Règles du forum à lire avant de poster une question : ICI
Messages postés
33195
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 août 2021
351
Au fait,

Une fois pour toutes... quand on programme sous office (Excel, Word..etc..) on fait du VBA.
Il faut donc poster ces questions dans cette section !

Dans ton message du 16 Mars, le FORUM à utiliser t'avait déjà été indiqué....
Visual Basic 6 > Langages dérivés > VBA


Pour l'instant, j'ai posté 22 fois moins de messages que Ucfu.. je suis donc un peu plus patient... mais sérieusement, si vous souhaitez continuer à recevoir de l'aide des "Anciens", il serait bon de faire attention à ce que vous faites.
Ceci est valable pour Hazzel et pour tous les 'nouveaux' qui liraient ce message.....

Cordialement,
Jordane
_____________________________________________________
Règles du forum à lire avant de poster une question : ICI
Messages postés
20
Date d'inscription
jeudi 13 novembre 2008
Statut
Membre
Dernière intervention
19 juillet 2013

Au temps pour moi et désolé d'exaspérer certains, le message est passé. C'est juste que j'essai de rechercher le mot excel mais en vain dans la liste, et c'est vrai qu'Excel ça reste du VBA.

Concernant la solution apporté je look et je prends note, j’essaierai demain et je remonterai le dénouement, en tout cas merci pour vos apports qui sont toujours appréciable pour les ptits novices comme moi.
Messages postés
20
Date d'inscription
jeudi 13 novembre 2008
Statut
Membre
Dernière intervention
19 juillet 2013

Parfait merci beaucoup tu es un génie

J'avais déjà eu ce petit souci, maintenant je pourrai utiliser la macro et gagner un temps fou !

Thank's a lot
Messages postés
33195
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 août 2021
351
Un génie je ne pense pas
Juste habitué à traiter ce genre de petites difficultés

Bonne continuation.


Cordialement,
Jordane
_____________________________________________________
Règles du forum à lire avant de poster une question : ICI