Décomposer contenu d'une cellule avec les mots séparés par un caractère "|"

Bonjour Chers forum,

J'ai besoin de votre aide svp.

L'objectif est de décomposer le contenu d'une cellule de la ma colonne contenant un seul mot concaténé dont les mots sont séparés avec un caractère "|".

L'objectif final est de reconstitué les colonnes "A, B, C, D, E, F" de ma feuille destination avec le contenu de la colonne A de la feuille source.

Exemple (en A2 de la feuille source) :

05|2021|PIA-CIE|PRESTATIONS EXTERNES|SUBVENTIONS|2017

Il sera décomposé comme suit :

Résultat à la feuille (Destination) :

Colonne A (Mois) = 05 ; Colonne B (ANNEE) = 2021; Colonne C (ACTE) = PIA-CIE; Colonne D (TYPE) =PRESTATIONS EXTERNES ; Colonne E (NATURE)=SUBVENTIONS ; Colonne F(ANNEE GESTION) =2017

séparateur = |

Je vous remercie pour le temps accordé à ma demande !

Salut,

J'ai créer une macro pour ton problème, j'espère qu'elle te conviendras

Sub décomposition()

Dim i, j, k As Long

i = 2
j = 1
k = 2

While Sheets("Source").Cells(i, 1).Value <> ""

    texte = Sheets("Source").Cells(i, 1).Value
    tableau = Split(texte, "|")

    Sheets("Destination").Cells(k, 7).Value = Sheets("Source").Cells(i, 2).Value

    While j < 7

        Sheets("Destination").Cells(k, j).Value = tableau(j - 1)
        j = j + 1

    Wend

    j = 1
    k = k + 1
    i = i + 1

Wend

End Sub

Bonjour,

Ajouter un bouton de commande nommé "cb_split" sur la feuille Source,

Ensuite copier/coller ce code dans la feuille "Destination"

Private Sub cb_split_Click()

    Dim Ws_source As Worksheet
    Dim Ws_cible As Worksheet

    Set Ws_source = ThisWorkbook.Worksheets("Source")
    Set Ws_cible = ThisWorkbook.Worksheets("Destination")

    Ws_cible.Range("A2:Z5000").ClearContents

    derlig_source = Ws_source.Range("A" & Rows.Count).End(xlUp).Row

    Dim tab_source() As Variant

    tab_source = Ws_source.Range("A2", "B" & derlig_source)

    For i = 1 To UBound(tab_source, 1)
        tab_separe = Split(tab_source(i, 1), "|")
        derlig_cible = Ws_cible.Range("A" & Rows.Count).End(xlUp).Row
        For j = 0 To UBound(tab_separe, 1)
            Ws_cible.Cells(derlig_cible + 1, j + 1).Value = tab_separe(j)
        Next j
        Ws_cible.Range("G" & derlig_cible + 1).Value = tab_source(i, 2)
    Next i

End Sub

Bonjour,

Je vous remercie pour votre intervention rapide et efficace.

Vos programmes fonctionnent parfaitement bien à mon contenant les vraies données.

Excellente journée à vous tous !

Encore merci !

Rechercher des sujets similaires à "decomposer contenu mots separes caractere"