Macro qui copie la ligne n+1 à la ligne n

sylvia_VB Messages postés 2 Statut Membre -  
sylvia_VB Messages postés 2 Statut Membre -
bonjour à tous,

je cherche à faire une macro qui copie la ligne n+1 à la ligne n, une fois sur deux.
j'ai commence a écrire une macro mais celle -ci garde en mémoire la dernière occurrence copiée et ce n'est pas ce que je veux.

Public Sub suppr_lignes()

Dim i As Integer
Dim j As Integer

For i = 3 To 6 Step 2
For j = 2 To 6 Step 2

Range("A" & i & ":I" & i).Select
Selection.Copy
Range("J" & j).Select
ActiveSheet.Paste

Next j
Next i

End Sub

Merci pour vos réponses

4 réponses

  1. PaulHuxe Messages postés 34 Statut Membre 3
     
    Je ne comprends pas l'intérêt des deux boucles imbriquées.

    Essaie simplement de remplacer la seconde boucle for par

    j=i-1

    (vire le next correspondant évidemment)
    0
  2. sylvia_VB
     
    Merci PaulHuxe pour cette réponse, je suis débutante...
    cela fonctionne
    bonne journée.
    0
  3. PaulHuxe Messages postés 34 Statut Membre 3
     
    De rien.

    Un petit rappel sur les boucles imbriquées, peut-être ?

    quand tu imbriques deux boucles, comme dans ce que tu as fait, la bouche intérieure est entièrement exécutée à chaque passage de la boucle extérieure.

    Au final, i et j prendront les valeurs suivantes :
    (3, 2) (3, 4) (3, 6) [i=3, et boucle j complète]
    (5, 2) (5, 4) (5,6) [ 2e passage de la boucle i, i=5, et boucle j complète
    0
  4. sylvia_VB Messages postés 2 Statut Membre
     
    Merci pour ce petit rappel, je ne pensais pas que les boucles imbriquées fonctionnaient comme ça sur vba.

    je comprends mieux pourquoi mes résultats se répétaient en boucle j.
    0