[VBA] Reproduire une macro toutes les X lignes

Bonjour,

J'ai cette macro que j'aimerais reproduire toutes les 7 lignes et non uniquement les lignes indiqués comme ci-dessous.
Donc ce qui donnerait D6, puis D13, etc...

Est-ce faisable ?

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("D6")) Is Nothing Then
    Range("D11:E11") = Environ("username")
    Range("D11:E11").Copy
    Range("D11:E11").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
    Application.CutCopyMode = False
    ActiveCell = Right(ActiveCell, Len(ActiveCell) - 2)
    Range("D7").Select
End If
End Sub

Bonjour

Code inutilement compliqué, ceci fait la même chose

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("D6")) Is Nothing Then Exit Sub
Range("D11") = Right(Environ("username"), Len(Environ("username")) - 2)
End Sub

OK pour déclencher toutes les 7 lignes mais on écrit aussi toutes les 7 lignes ? Si oui

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 4 Or Target.Row Mod 7 <> 6 Or Target.Cells.Count > 1 Then Exit Sub
    On Error GoTo Fin
    Application.EnableEvents = False
    Target.Offset(5, 0) = Right(Environ("username"), Len(Environ("username")) - 2)
Fin:      Application.EnableEvents = True
End Sub

bonjour,

Edit : Salut 78chris

une proposition. J'ai fait l'hypothèse que D11 devait être adapté en fonction de la cellule choisie (ex D18 pour D13, etc ...)

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 4 Then
        If (Target.Row - 6) Mod 7 = 0 Then
            un = Environ("username")
            Application.EnableEvents = False
            Target.Offset(5, 0).Resize(, 2) = un
            Target.Offset(5, 0) = Right(un, Len(un) - 2)
            Application.EnableEvents = True
            Target.Offset(1, 0).Select
        End If
    End If
End Sub

Merci à vous deux pour vos réponses qui marchent toutes les deux !

@78chris Effectivement, j'utilise pas mal l'enregistreur de macro et après j'essaie de modifier ou d'ajouter des éléments un peu comme je pense et du coup c'est pas du tout optimisé . Je te remercie en tout cas de ton aide .

Rechercher des sujets similaires à "vba reproduire macro toutes lignes"