Macro : Répéter action toutes les 4 lignes [Fermé]

Signaler
Messages postés
1
Date d'inscription
jeudi 2 mai 2019
Statut
Membre
Dernière intervention
2 mai 2019
-
Messages postés
7450
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
27 juillet 2021
-
Bonjour,

Novice en macro, je cherche à répéter une action toutes les 4 lignes.

L'action en question :

A;B;C;D;E;
Q1;Rep1;Rep2;Rep3;Rep4;
;;;;;
;;;;;
;;;;;
Q2;Rep1.Rep2;Rep3;Rep4;
;;;;;
;;;;;
;;;;;

Le résultat souhaité

Q1;Rep1;;;;
;Rep2;;;;
;Rep3;;;;
;Rep4;;;;
Q2;Rep1;;;;
;Rep2;;;;
;Rep3;;;;
;Rep4;;;;
...

La macro enregistrée :

Sub Macro1()
Range("G2:J2").Select
Selection.Copy
Range("F2").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
End Sub


Merci :)
Kevin

Configuration: Windows / Chrome 73.0.3683.103

1 réponse

Messages postés
7450
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
27 juillet 2021
644
Bonjour,

pas très clair!

Si les données sont dans les cellules A1 et A5:

Sub Test()
Range("A2").Value = ";" & Split(Range("A1").Value, ";")(2) & ";;;;"
Range("A3").Value = ";" & Split(Range("A1").Value, ";")(3) & ";;;;"
Range("A4").Value = ";" & Split(Range("A1").Value, ";")(4) & ";;;;"
Range("A1").Value = Split(Range("A1").Value, ";")(0) & "; " & Split(Range("A1").Value, ";")(1) & ";;;;"
Range("A6").Value = ";" & Split(Range("A5").Value, ";")(2) & ";;;;"
Range("A7").Value = ";" & Split(Range("A5").Value, ";")(3) & ";;;;"
Range("A8").Value = ";" & Split(Range("A5").Value, ";")(4) & ";;;;"
Range("A5").Value = Split(Range("A5").Value, ";")(0) & "; " & Split(Range("A5").Value, ";")(1) & ";;;;"
End Sub


et si les données sont dans les colonnes A;B;C;D;E;

Sub test()
Range("A1").Value = Range("A1").Value & Range("B1").Value & ";;;;"
Range("A2").Value = ";" & Range("C1").Value & ";;;;"
Range("A3").Value = ";" & Range("D1").Value & ";;;;"
Range("A4").Value = ";" & Range("E1").Value & ";;;;"
Range("A5").Value = Range("A5").Value & Range("B5").Value & ";;;;"
Range("A6").Value = ";" & Range("C5").Value & ";;;;"
Range("A7").Value = ";" & Range("D5").Value & ";;;;"
Range("A8").Value = ";" & Range("E5").Value & ";;;;"
End Sub


voilà

Messages postés
7450
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
27 juillet 2021
644
Pour faire une colonne complète, faire une boucle comme ceci:

Sub For_X_to_Next_Ligne()
Dim FL1 As Worksheet, NoCol As Integer
Dim NoLig As Long, Var As Variant
    Set FL1 = Worksheets("Feuil1") 'a adpater
    NoCol = 1 'lecture de la colonne A
    For NoLig = 1 To Split(FL1.UsedRange.Address, "$")(4) Step 4 'toutes le 4 lignes
        Var = FL1.Cells(NoLig, NoCol)
      FL1.Cells(NoLig, NoCol).Value = FL1.Cells(NoLig, NoCol).Value & FL1.Cells(NoLig, NoCol + 1).Value & ";;;;"
FL1.Cells(NoLig + 1, NoCol).Value = ";" & FL1.Cells(NoLig, NoCol + 2).Value & ";;;;"
FL1.Cells(NoLig + 2, NoCol).Value = ";" & FL1.Cells(NoLig, NoCol + 3).Value & ";;;;"
FL1.Cells(NoLig + 3, NoCol).Value = ";" & FL1.Cells(NoLig, NoCol + 4).Value & ";;;;"
    Next
    Set FL1 = Nothing
End Sub


@+