XL 2019 Décomposer des valeurs texte en numérique

  • Initiateur de la discussion Initiateur de la discussion Ron74
  • 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 !

Ron74

XLDnaute Nouveau
Bonjour à tous

Je reçois des données sous forme de texte et j'aimerais pouvoir les séparer en plusieurs colonnes
J'arrive à faire le premier cas mais je bute suer le 2 ème
En VBA serais super

Merci de votre aide

Bonne journée

A B C D
6 440,25 6 440,256 440,256 440,25
27 536,24 15,36 27 520,8827 536,2415,3627 750,88
 
Bonjour

mes données sont comme dans la première colonne et j'aimerais avoir le résultat comme dans les colonnes 2-3-4

mon problème et que l'ai un espace pour la séparation des milliers et un espace pour la séparation des différents nombes
 
Bonjour à tous,
Un peu tiré par les cheveux mais voici un petit code
Faire la sélection sur ta colonne des cellules à convertir puis lancer la macro suivante
VB:
Sub Convertir()
    For Each xCell In Selection
        xCellule = xCell
        xLig = xCell.Row
        xTourne = (Len(xCellule) - Len(Replace(xCellule, ",", ""))) / 1
        xPos = 1
        For F = 1 To xTourne
            xVirg = InStr(xPos, xCellule, ",")
            xEspa = xVirg + 3
            xTexte = Trim(Mid(xCellule, xPos, xEspa - xPos))
            xNombr = Val(Replace(xTexte, ",", "."))
            xPos = xEspa
            Cells(xLig, F + 2) = xNombr
        Next F
    Next xCell
End Sub
A adapter en fonction de tes données (Surtout la ligne Cells(xLig, F+2) = xNombr
@+ Lolote83
 
Dernière édition:
Re bonjour,
En examinant le fichier, je pense que les colonnes B,C,D et E ne sont pas dans le fichier d'origine mais sont des données calculées par notre ami @Ron74 .
Dans l'onglet 2 du fichier joint, je suis donc parti du principe que ces données n'existaient pas et que seul la colonne A était les données d'origine.
Du coup, voici le nouveau fichier avec un onglet Feuil2 et la macro Convertir2
Une fois la feuille 2 affichée, lancer la macro Convertir2
@+ Lolote83
 

Pièces jointes

Merci Lotote83 pour tes réponses

Une petite modification pour écrire les valeurs dans la bonne colonne mais c'est bien ce que je voulais

Sub Convertir()

For Each xCell In Selection
xCellule = xCell
xLig = xCell.Row
xtourne = (Len(xCellule) - Len(Replace(xCellule, ",", ""))) / 1
xPos = 1
For F = 1 To xtourne
xVirg = InStr(xPos, xCellule, ",")
xEspa = xVirg + 3
xTexte = Trim(Mid(xCellule, xPos, xEspa - xPos))
xNombr = Val(Replace(xTexte, ",", "."))
xPos = xEspa

If F = 1 And (xtourne = 2 Or xtourne = 3) Then
Cells(xLig, 6) = xNombr
ElseIf F = 2 And xtourne = 3 Then
Cells(xLig, 7) = xNombr
ElseIf F = 2 And xtourne = 2 Or F = 3 And xtourne = 3 Then
Cells(xLig, 8) = xNombr
End If


Next F
Next xCell
End Sub
 
Hello @Lolote83 : Vu ta solution, pas mal non plus.. meme plus simple que la mienne

par contre,@Ron74 , nos deux solutions ne fonctionnent QUE si les nombres sont au "format décimal" avec 2 chiffres après la virgule.. meme pour les nombres entiers
ex:
2 520 3520.50 ==> ne donnera pas le résultat attendu
alors que
2520.00 3520.50== >OK
 
- 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

Discussions similaires

Réponses
38
Affichages
2 K
Réponses
1
Affichages
1 K
Réponses
36
Affichages
3 K
Retour