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

Fermé
sylvia_VB Messages postés 2 Date d'inscription jeudi 13 juin 2013 Statut Membre Dernière intervention 14 juin 2013 - 13 juin 2013 à 14:34
sylvia_VB Messages postés 2 Date d'inscription jeudi 13 juin 2013 Statut Membre Dernière intervention 14 juin 2013 - 14 juin 2013 à 09:24
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 jeudi 13 juin 2013 Statut Membre Dernière intervention 8 novembre 2013 3
13 juin 2013 à 14:37
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
Merci PaulHuxe pour cette réponse, je suis débutante...
cela fonctionne
bonne journée.
0
PaulHuxe Messages postés 30 Date d'inscription jeudi 13 juin 2013 Statut Membre Dernière intervention 8 novembre 2013 3
13 juin 2013 à 15:54
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 jeudi 13 juin 2013 Statut Membre Dernière intervention 14 juin 2013
14 juin 2013 à 09:24
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