Menu

Macro : Répéter action toutes les 4 lignes

Messages postés
1
Date d'inscription
jeudi 2 mai 2019
Statut
Membre
Dernière intervention
2 mai 2019
- - Dernière réponse : cs_Le Pivert
Messages postés
6051
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
24 mai 2019
- 3 mai 2019 à 12:52
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
Afficher la suite 

Votre réponse

1 réponse

Messages postés
6051
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
24 mai 2019
365
0
Merci
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à

cs_Le Pivert
Messages postés
6051
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
24 mai 2019
365 -
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


@+
Commenter la réponse de cs_Le Pivert