Scinder une cellule en plusieurs lignes

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

N

Nouzee

Guest
Bonjour à tous,

J'ai parcouru le forum pour essayer de trouver une solution à mon problème, j'ai trouvé des aides s'y approchant sans pour autant trouver la solution ultime.

Je m'explique, j'ai un tableau dans lequel se trouve différentes informations :
- colonne 1 : numéro d'article
- colonne 2 : description article
- colonne 3 : date de réception
- colonne 4 : numéros de commandes impactées (colonne T dans l'exemple)
.....

Les cellules des numéros de commandes contiennent donc plusieurs valeurs, identifiées par 11 à 12 caractères (3 lettres, 6 chiffres, underscore, 1 ou 2 chiffres) et sont séparés par une barre verticale (tube).

Mon but est, pour chaque numéro de commande rencontré, créer une nouvelle ligne avec ce numéro de commande en reprenant les informations de la ligne dont il est extrait.

J'espère avoir été clair, dispo pour tout complément d'infos.

D'avance merci.
 

Pièces jointes

Re : Scinder une cellule en plusieurs lignes

Bonjour Nouzee,

Bienvenue sur XLD

Le fichier envoyé est-il le bon ?
Parce qu'avec une ligne de données, ça risque d'être un peu court
D'autre part, si tu le met à jour, pourrais tu construire un tableau de ce que tu souhaiterais obtenir ?
 
Re : Scinder une cellule en plusieurs lignes

Re,

Le fichier test est le tableau existant, le fichier test2 est la résultante de ce que je souhaiterai obtenir.

A savoir, la cellule T2 contenue dans 'test' comprenait 4 occurrences a scindé et créer 3 nouvelles lignes (résultat 'test2').
 
Re : Scinder une cellule en plusieurs lignes

Bonjour


A adapter à ton fichier réél
Code:
Sub test()
For i = 100 To 2 Step -1
If Not IsEmpty(Cells(i, "T")) Then
 Cells(i, "T").Offset(1).Resize(3).EntireRow.Insert
 End If
Next i
For j = 100 To 2 Step -1
If Not IsEmpty(Cells(j, "T")) Then
Cells(j, "T").Resize(4) = Application.Transpose(Split(Cells(j, "T"), "|"))
End If
Next j
End Sub
 
Re : Scinder une cellule en plusieurs lignes

Bonjour Tempus,

Il faudrait que les données contenues dans les autres cellules se répètent également sur les autres nouvelles lignes, est-ce possible ?

En tout cas merci.
 
Re : Scinder une cellule en plusieurs lignes

Bonjour Tempus,
Re,

Enfin compris, moi 😉

à lancer dans le classeur Test, le résultat apparaitra en Feuil2

Code:
Sub Multiplie()
Dim i As Long, j As Long, Tablo, DerLigne As Long
    Sheets("feuil2").Cells.ClearContents
    With Sheets("Feuil1")
        .Range("A1:IV1").Copy Sheets("Feuil2").Range("A1")
        DerLigne = 2
        For i = 2 To .Range("T65536").End(xlUp).Row
            Tablo = Split(.Range("T" & i).Value, "|")
            For j = LBound(Tablo) To UBound(Tablo)
                .Range("A" & i & ":IV" & i).Copy Sheets("Feuil2").Range("A" & DerLigne)
sheets("Feuil2").range("T" & Derligne).value = tablo(j)
                DerLigne = DerLigne + 1
            Next j
        Next i
    End With
End Sub
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Retour