changer un point par un virgule et effacer des termes automatiquement

babou466

XLDnaute Junior
Bonjour,
suite à un problème d'extraction de données lors d'une analyse dsc en laboratoire, je me retrouve dans l'incapacité de fournir un graphique. En effet, il me faudrait 2 colonnes de valeurs avec des virgules indiquant les parties décimales et j'ai à l'heure actuelle plus de 1000 valeurs sous le format suivant par cellule:
53.666 22.69184

avec d'abord 3 espaces, puis 4 entre les 2 chiffres.

Je me demandais s'il n'existe pas sous excel une fontion permettant dans un premier temps de remplacer tout les points par des virgules, et dans un second temps s'il n'est pas possible de supprimer tout les premiers chiffres afin de faire 2 colonnes distinctes avec chacun des nombres?

Merci d'avance à ceux qui pourront éventuellement me renseigner,
bonne soirée dans tout les cas et merci de m'avoir lu!

Je vous joins 2 fichiers: le problème est sur le fichier RET alors que le second est le résultat attendu
 

Pièces jointes

  • RET.xls
    53.4 KB · Affichages: 59
  • PREPVERRE.xls
    69 KB · Affichages: 69
  • RET.xls
    53.4 KB · Affichages: 66
  • RET.xls
    53.4 KB · Affichages: 63
Dernière édition:

babou466

XLDnaute Junior
Re : changer un point par un virgule et effacer des termes automatiquement

Je suis vraiment impressionnée! Merci beaucoup! Une partie de mon problème est résolue grâce à vous!

Il me faut maintenant découvrir comment changer le point en virgule pour être compatible avec le fichier PREPVERRE et pouvoir faire un graphique avec les 2 analyses comparatives.
 

Victor21

XLDnaute Barbatruc
Re : changer un point par un virgule et effacer des termes automatiquement

Bonsoir.

L'enregistreur de macro me donne ce code, à tester sur RET :
VB:
Sub Macro1()
                    
    Columns("A:A").Select
    Selection.Replace What:=".", Replacement:=",", LookAt:=xlPart, _
    SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Space:=True
End Sub

PS : Bonsoir, CISCO
 

CISCO

XLDnaute Barbatruc
Re : changer un point par un virgule et effacer des termes automatiquement

Bonsoir

J'ai oublié de changer le point en virgule, mais je pense que tu y arriveras en utilisant la fonction SUBSTITUE, un peu comme dans mon précédent fichier. Si ce n'est pas le cas, reviens nous poser des questions.

@ plus
 

laurent950

XLDnaute Accro
Re : changer un point par un virgule et effacer des termes automatiquement

Bonsoir,

Je suis arrivé a faire le découpage avec une variable tableau, en faite lorsque je regarde dans la fenêtre d’exécution avec Debug.Print (aucune erreur) mais lorsque je transfert les donner il n’y a plus le même résultat.

Avez-vous une solution car cela demeure un mystère pour moi.

Code :

VB:
Sub test()
 With ActiveSheet
     Dim T() As Variant
     T = .Range(.Cells(6, 1), .Cells(.Rows.Count, 1).End(xlUp)).Value
     Dim i As Integer, nb As Integer, j As Integer
     Dim un As Variant, res As Variant
     nb = UBound(T)
     ReDim res(1 To nb, 1 To 2)
     For i = 1 To nb
     un = Split((Replace(T(i, 1), ".", ",")), "    ")
      For j = 0 To UBound(un)
       'res(i, j + 1) = Trim(res(i, j + 1)) & " " & un(j)
       res(i, j + 1) = un(j)
       Debug.Print res(i, j + 1)
      Next
    Next
    ' Worksheets("Feuil1").Range("B7").Resize(UBound(res, 1), UBound(res, 2)) = res
    ' Application.Trim(Application.Transpose(TR))
     Worksheets("Feuil1").Range("B7").Resize(UBound(res, 1), UBound(res, 2)) = Application.Trim(res)
     End With
  End Sub

Je remercie se forum est les gens qui contribue à toujours trouver des solutions est des astuces toujours plus enrichissante les unes que les autres.

Laurent
 

Pièces jointes

  • Split avec variable tableau.xls
    228.5 KB · Affichages: 78

Staple1600

XLDnaute Barbatruc
Re : changer un point par un virgule et effacer des termes automatiquement

Bonsoir à tous

Une autre voie : Données/Convertir
(qui s'utilise aussi très bien sans macros ;) )

Ici pour l'exemple appliquée au cellules A6:A8

VB:
Sub Macro1()
'code à peine modifié issu de l'enregisteur de macro
Range("A6:A8").TextToColumns Destination:=Range("B6"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
        Semicolon:=False, Comma:=False, Space:=True, Other:=False, FieldInfo _
        :=Array(Array(1, 9), Array(2, 1), Array(3, 1)), DecimalSeparator:=".", _
        TrailingMinusNumbers:=True
Range("B6:C8").NumberFormat = "0.00000"
End Sub

babou466
Fais-moi savoir si aller plus loin dans cette voie t'intèresse.
Merci
 

babou466

XLDnaute Junior
Re : changer un point par un virgule et effacer des termes automatiquement

Bonsoir

J'ai oublié de changer le point en virgule, mais je pense que tu y arriveras en utilisant la fonction SUBSTITUE, un peu comme dans mon précédent fichier. Si ce n'est pas le cas, reviens nous poser des questions.

@ plus


Merci à vous tous!
j'ai fait comme vous me suggériez avec la fonction simple suivante:*
=SUBSTITUE(H6;"."; ",")
 

babou466

XLDnaute Junior
Re : changer un point par un virgule et effacer des termes automatiquement

J'ai maintenant un autre soucis...
après avoir utilisé la fonction substitute pour changer mes points en virgules, mes valeurs affichées sont correctes, mais valent 0 quand je tente de faire mon graphique...je vous joins mon fichier, il faut aller dans l'onglet "comparaison"

Je n'arrive pas à comprendre d'où vient le problème, si quelqu'un pouvait m'aiguiller, merci d'avance et bonne journée!
 

Pièces jointes

  • RET revu.xlsx
    86.2 KB · Affichages: 69

Discussions similaires

Statistiques des forums

Discussions
312 248
Messages
2 086 594
Membres
103 250
dernier inscrit
keks974