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
A voir également:

4 réponses

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
sylvia_VB
 
Merci PaulHuxe pour cette réponse, je suis débutante...
cela fonctionne
bonne journée.
0
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
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