copier en boucle décalée

A

albert

Guest
Bonjour à tous,bonjour forum,

j'ai tenté de trouver un système pour décaler des colonnes à la recopie dans la feuille 2.. je m'explique :

Les colonnes A,B,C,D,E, de la Feuil1 sont recopiées en boucle dans le colonnes A,B,C,D,E, de la Feuil2

Je voudrais obtenir des colonnes décalées, soit A,B,C,D,E, de la Feuil1 copiées en A,C,E,G,I de la Feuil2

J+2 ne marche pas...

Est-il nécessaire de faire une seconde boucle ???

mon code :

Sub Recopie()

Application.ScreenUpdating = False

For i = 1 To 24
For j = 1 To 6
Sheets("Feuil2").Cells(i, j) = Sheets("Feuil1").Cells(i, j)
Next j
Next i

Range("A1").Select

End Sub


pj : ESSAIBOUCLE.zip 9Ko

(le sujet a peut-être déjà été traité - la fonction recherche est désactivée)

merci d'avance pour une suggestion

albert
 

Pièces jointes

  • ESSAIBOUCLE.zip
    8.1 KB · Affichages: 14
S

sylsyl

Guest
Salut Albert,

une petite remarque pour commencer, si tu veux copier/coller une plage comme tu le fais dans ton code ci dessus, utilise plutot

Sub recopie()
Dim Plage
Plage = Sheets(1).Range("A1:F24")
Sheets(1).Range("A1:F26") = Plage
End Sub

tu gagneras beaucoup en temps d'execution.

Pour copier/coller une colonne sur 2
tu peux essayer le meme principe avec une boucle sur les colonnes (car il y a moins de colonnes que de lignes)

Sub recopie()
Dim Plage
For i = 1 To 6
k = i * 2 - 1
Sheets(1).Select
Plage = Range(Cells(1, i), Cells(24, i))
Sheets(3).Select
Range(Cells(1, k), Cells(24, k)) = Plage
Next i
End Sub

A++, Sylsyl.
 
A

albert

Guest
merci sylsyl,

je pensais avoir plus de souplesse avec une boucle qu'avec une plage...

en fait, ton code est très souple, j'ai même réussi à moduler le décalage

k = i * 3 - 2

pj decaleplage.zip

cordialement

albert
 

Pièces jointes

  • decaleplage.zip
    10.2 KB · Affichages: 17

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 857
Membres
103 979
dernier inscrit
bderradji