Duplication de lignes en fonction d'une valeur

Bonjour,

Je n'ai que peux d'expérience en VBA et j'aimerais effectué, sur un fichier excel l'automatisme suivant :

Duplication de lignes en fonction d’un (des) valeurs séparé par un « ; » dans une cellule.

Je m'explique par un exemple :

N° Libellé N° de suivi

1 libellé-1 CTR0000123;CTR000124;CTR000125

Je voudrais trouver la solution afin que la ligne soit dupliquée X fois

avec suppression de la ligne d'origine qui n'a plus d’intérêt...

Ce qui donnerai le résultat suivant :

1 libellé-1 CTR000123

1 libellé-1 CTR000124

1 libellé-1 CTR000125

Je ne vois pas de solution hors VBA.

Je vous remercie par avance pour votre aide.

Marcki

Bonjour,

une proposition

Sub aargh()
Dim t, dl As Long, i As Long, j As Long, ns As String, li As Long
    With Sheets("fichier source")
        dl = .Cells(Rows.Count, 1).End(xlUp).Row
        For i = dl To 2 Step -1
            ns = .Cells(i, 4)
            If InStr(ns, ";") <> 0 Then
                t = Split(ns, ";")
                li = i + UBound(t) - LBound(t)
                .Rows(i + 1 & ":" & li).Insert shift:=xlDown
                .Rows(i).Copy .Rows(i + 1 & ":" & li)
                For j = LBound(t) To UBound(t)
                    .Cells(i + j + IIf(LBound(t) = 0, 0, -1), 3).Resize(1, 2) = t(j)
                Next j
            End If
        Next i
    End With
End Sub

Bonjour,

Un grand merci : une proposition qui fonctionne à merveille : c'est impressionnant car cela fait un moment

que je cherche

Par contre afin de me permettre de comprendre un peu mieux les lignes de commandes VBA,

est il possible de l'adapter au fichier ci joint qui comporte beaucoup plus de colonnes et

avec la suppression des espaces et la conversion des texte en majuscule (si possible sinon

le traitement se fera avant via les formules Excel classiques...

J'ai ajouté le fichier modifié en conséquence.

Encore un grand merci pour votre aide.

Cordialement.

Bonjour,

voici une version adaptée. dans ton exemple j'ai vu que tu laissais les minuscules pour la ligne 4. est-ce correct ? comme je ne le pense pas, j'ai mis dans le code la conversion en majuscules et la suppression des blancs pour le cas où il n'y a pas de ligne ajoutée. j'ai mis un commentaire concernant l'instruction à supprimer, pour le cas où ma supposition ne serait pas correcte.

Bonjour,

Un mot : bravo

J'ai testé sur mon fichier de travail et ce la fonctionne parfaitement.

Je vais maintenant me plonger pour comprendre et apprendre.

Encore un grand Merci.

Marcki

Rechercher des sujets similaires à "duplication lignes fonction valeur"