Scinder une case en plusieurs colonnes

Hello !

Il y a un truc que j'essaye de faire.

Imaginez que j'ai des fichiers Excel avec la colonne A qui contient que des cases de cette forme :

[{

"ID": "Text",

"Valeur_Numerique_1": Val1,

"Valeur_Numerique_2": Val2,

"Valeur_Numerique_3": Val3,

"Valeur_Numerique_4": Val4

}]

J'aimerais bien séparer de façon à avoir :

IDValeur_Numerique_1Valeur_Numerique_2Valeur_Numerique_3Valeur_Numerique_4
TextVal1Val2Val3Val4

Je n'ai cependant aucune idée de comment faire (avec une formule Excel ou un code VBA est nécessaire ?)

Je vous mets un fichier.

Sheet 1 : ce que j'ai
Sheet 2 : ce que j'aimerais avoir

Merci d'avance.

17aide.xlsx (12.13 Ko)

J'ai trouvé un code sur internet que l'on peut adapter. On peut utiliser un truc du genre :

Function renvoimid(cellule As Range) As String
Dim tempstr As String
Dim i As Long
Dim j As Long

tempstr = cellule.Value
i = 1
j = 1
While Mid(tempstr, i, 3) <> "MID" And i <= Len(tempstr)
    i = i + 1
Wend

While Mid(tempstr, i + 6 + j, 1) <> "," And j <= Len(tempstr)
    j = j + 1
Wend
renvoimid = Mid(tempstr, i + 6, j)
End Function

Bonsoir,

une proposition vraiment moche ! Mais elle fonctionne !

Sub test()
    Dim Ligne As Long, TempStr, C As Range, Tablo, I
    Ligne = 2
    Do
        If Cells(Ligne, 1).Value = "" Then Exit Do
        Set C = Cells(Ligne, 1)
        TempStr = Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(C, "[{" & Chr(10) & "    ""ID"": """, ""), """," & Chr(10) & """", ","), """Note_1"":", ""), """Note_2"":", ""), """Note_3"":", ""), """Note_4"":", ""), Chr(10) & "}]", ""), """", "")
        Tablo = Split(TempStr, ",")
        For I = 0 To 4
            C.Offset(, 5 + I).Value = Tablo(I)
        Next I
        C.Offset(, 10).Value = C.Offset(, 1)
        C.Offset(, 11).Value = C.Offset(, 2)
        C.Offset(, 12).Value = C.Offset(, 3)
        Ligne = Ligne + 1
    Loop
End Sub

J'espère pour vous que des "plus callés" vont vous répondre !

@ bientôt

LouReeD

Bonjour,

Comme je me suis aussi intéressé au problème, je vous montre ma solution. A chaque fois que la feuille 2 est sélectionnée, les données sont réactualisées en fonctions de la feuille 1. Pour l'instant je ne me suis occupé que des notes 1et 2.

Salutations.

4aide-v1.xlsm (25.78 Ko)

aller sur la feuille test et cliquer sur le bouton

je peux si tu le souhaites faire des modifications

7notes.xlsm (24.63 Ko)

Merci @ tous !

Je suis rassuré sur mon code... Yvouille, en effet les notes 3 et 4 ne sont pas encore gérés... gullaud, la note 4 pour les lignes 2, 3 et 4 n'apparait pas (?!)...

@ bientôt

LouReeD

Rechercher des sujets similaires à "scinder case colonnes"