XL 2010 VBA Insérer copier lignes

kan3pz

XLDnaute Occasionnel
Bonjour à tous,
J'ai besoin de dupliquer des lignes dans une table selon certaines conditions ne sachant pas coder en vba j'ai trouvé un début de réponse sur divers forum mais je sèche sur la suite...

Voici mon problème :
Je souhaite dupliquer toutes les lignes de ma table 1 fois (insérer + copier ligne) -> ok fait :

Code:
Option Explicit
Sub DupliqueLignes()
Dim Lmax As Long, L As Long
    With Feuil1
        Lmax = .Cells(.Rows.Count, 1).End(xlUp).Row
        For L = Lmax To 1 Step -1    
            With .Rows(L)
                .Copy
                .Offset(1, 0).Resize(1).Insert Shift:=xlDown
            End With
        Next L
    End With
    Application.CutCopyMode = False
End Sub


Puis sous condition réitérer cette action à savoir dans mon fichier exemple pour chaque ligne vérifier si la donnée de la colonne B est différente de celle au-dessus il faut la dupliquer (insérer + copier) 3 fois.
Si cela peut faciliter l'action il est tout à fait envisageable de créer dans la colonne C un indicateur pour identifier les lignes à dupliquer.


Merci
 

Pièces jointes

  • Duplication.xlsm
    15.7 KB · Affichages: 42

Bebere

XLDnaute Barbatruc
bonjour
à tester
Code:
Sub DupliqueLignes3()

    Dim Lmax As Long, L As Long

    With Feuil1

        Lmax = .Cells(.Rows.Count, 1).End(xlUp).Row
        For L = Lmax To 1 Step -1
        If L = 1 Then Exit For
            If .Cells(L, 2) <> .Cells(L - 1, 2) Then
                With .Rows(L)
                    .Copy
                    .Offset(1, 0).Resize(3).Insert Shift:=xlDown
                End With
            End If
           
        Next L

    End With

    Application.CutCopyMode = False

End Sub
 

Discussions similaires