[Excel] harmoniser les décimales

Résolu
cs_hazzel Messages postés 20 Date d'inscription jeudi 13 novembre 2008 Statut Membre Dernière intervention 19 juillet 2013 - 17 juil. 2013 à 17:18
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 19 juil. 2013 à 11:31
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

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
17 juil. 2013 à 23:46
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
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
17 juil. 2013 à 22:34
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.
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
17 juil. 2013 à 23:00
Bonsoir.

Utilisez REPLACE

Cordialement,
Jordane
_____________________________________________________
Règles du forum à lire avant de poster une question : ICI
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
17 juil. 2013 à 23:23
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
17 juil. 2013 à 23:34
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
0
cs_hazzel Messages postés 20 Date d'inscription jeudi 13 novembre 2008 Statut Membre Dernière intervention 19 juillet 2013
18 juil. 2013 à 10:26
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.
0
cs_hazzel Messages postés 20 Date d'inscription jeudi 13 novembre 2008 Statut Membre Dernière intervention 19 juillet 2013
19 juil. 2013 à 10:45
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
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 344
19 juil. 2013 à 11:31
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
0
Rejoignez-nous