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

sylvia_VB Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -  
sylvia_VB Messages postés 2 Date d'inscription   Statut Membre Dernière intervention   -
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 30 Date d'inscription   Statut Membre Dernière intervention   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 30 Date d'inscription   Statut Membre Dernière intervention   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 Date d'inscription   Statut Membre Dernière intervention  
 
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