Découper chaîne de caractère

Bonjour,

J'ai des chaines de caractère comme ci-dessous :

CR71-DIAM_4-HEIGHT_150-LENGHT_400-MATCL_SL

WR71-DIAM_0.75-TYPE_L-LENGHT_300

WR71-DIAM_1-TYPE_A-LENGHT_300

WR74-DIAM_10-TYPE_A-HEIGHT_350-SCH1_S10S-SCH2_S40-MATCL_SL

J'aimerai que les premiers caractére avant le premier " - " soit mis dans une colonne.

Puis les chiffre après chaque " _ " dans une colonne spécifique qui change en fonction du mot qu'il y a avant.

Par exemple après DIAM ils doivent être dans la colonne 9 de la même ligne etc.

Voici le code que j'ai commencer à faire :

For i = 1 To nblines

' split carac

Sheets(SheetMarian).Cells(i + 23, 7) = variable(1)

For j = 1 To lenghtvariable - 1

If variable(j) = "DIAM" Then

Sheets(SheetMarian).Cells(i + 23, 9) = variable(j + 1)

ElseIf variable(j) = "HEIGHT" Then

Sheets(SheetMarian).Cells(i + 23, 12) = variable(j + 1)

ElseIf variable(j) = "LENGHT" Then

Sheets(SheetMarian).Cells(i + 23, 13) = variable(j + 1)

ElseIf variable(j) = "SCH1" Then

Sheets(SheetMarian).Cells(i + 23, 15) = variable(j + 1)

ElseIf variable(j) = "SCH2" Then

Sheets(SheetMarian).Cells(i + 23, 16) = variable(j + 1)

Next j

Next i

Il me manque juste à savoir comment on fait pour séparer mes variables dans un tableau de variable

Bonjour

Tu devrais joindre un fichier avec un exemple de ce que tu veux obtenir

Bye !

Comme ça peut-être ?

Bye !

16classeur1-v1.xlsm (17.62 Ko)

Dans l'idée oui

Je ne peux pas mettre mon fichier ce soir. Je le mettrai demain matin

19classeur1.xlsm (14.59 Ko)

Voici à quoi doit ressembler le fichier final

Bonjour

Alors essaie ça :

Bye !

19classeur1-v2.xlsm (19.20 Ko)

Merci beaucoup !

Mais il y a un soucis pour les lignes 3 et 4 il manque le Lenght

Bonjour,

Une alternative à tester.

Cdlt.

10classeur1-v3.xlsm (16.70 Ko)
Public Sub SplitCells()
Dim n As Long, k As Long
Dim tbl, x
    Application.ScreenUpdating = False
    n = Cells(Rows.Count, 1).End(xlUp).Row
    Cells(2, 3).Resize(n, 10).ClearContents
    For I = 2 To n
        tbl = Split(Trim(Cells(I, 1)), "-")
        Cells(I, 3) = tbl(0)
        For k = 1 To UBound(tbl)
            x = Split(tbl(k), "_")(1)
            Select Case True
                Case tbl(k) Like "DI*": Cells(I, 5) = x
                Case tbl(k) Like "TY*": Cells(I, 6) = x
                Case tbl(k) Like "HE*": Cells(I, 8) = x
                Case tbl(k) Like "LE*": Cells(I, 9) = x
                Case tbl(k) Like "SCH1*": Cells(I, 11) = x
                Case tbl(k) Like "SCH2*": Cells(I, 12) = x
            End Select
        Next k
    Next I
End Sub
Rechercher des sujets similaires à "decouper chaine caractere"