Boucle Copier/Coller Colonne
Bonjour,
Je cherche a créer une boucle me permettant de copier un certain nombre de lignes d'une colonne i et de la coller sur le même emplacement sur une autre Feuille.
J'aimerais copier les lignes 1 à 651 de ma Colonne i mais j'obtiens toujours un message d'erreur lorsque je cherche a utiliser Range. Je pense juste avoir la mauvaise syntaxe pour cette fonction range.
Ca ressemblerait à ça:
For i = 3 To 6
Sheets("Feuil1").Select
Range("1" & i, "651" & i).Select
Selection.Copy
Sheets("Feuil2").Select
Range("1" & i, "651" & i).Select
Selection.Paste
En gros mon problème c'est la syntaxe de range pour une boucle For...Next
Merci d'avance pour votre aide!
Salumanu
Bonjour,
Si c'est pour coller des colonnes (qui se suivent en plus) sur les mêmes autres colonnes mais d'une autre feuille, je ne vois pas l'intérêt d'une boucle ?
Sheets("Feuil1").Range("C1:F651").Copy
Sheets("Feuil2").Activate
Range("C1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Ce code suffit amplement
Sinon une syntaxe plus fonctionnelle serait
Range(Cells(1,i),Cells(651,i)).select
Car de toute façon boucle ou pas la syntaxe de ton range n'est pas bonne telle que tu l'as écrite.
Tu as la lettre de lacolonne puis le numéro de ligne et non l'inverse comme tu as fait, ce qui aurait donné :
Range(i & "1:" & i & "651").copy
sauf qu'en executant , le code se serait trouvé être :
Range(3&"1:"&3&"651")
ce qui est incompréhensible pour excel car il attend une lettre et non un chiffre, donc si on ne veut pas s'amuser à passer par une fonction supplémentaire pour retrouver à quelle lettre correspond ton "i", il faut passer par les "Cells(x,x)" qui eux fonctionnent avec le numéro de colonne et non la lettre.
Cordialement,
Tout d'abord Merci infiniment pour votre explication,
Si je cherche a faire ceci c'est qu'il s'agit juste d'une étape de ma macro. En effet la feuille sur laquelle je vais coller ma colonne va changer a chaque tour de ma boucle. L’intérêt de cette manœuvre est de copier plus de 260 colonnes sur 260 fichiers (feuilles correspondants)
Grace a la syntaxe que vous m'avez conseillée je peux finalement sélectionner les cellules qu'il me faut, cependant je rencontre un message d'erreur lors du collage.
(içi je regle la boucle sur 1 seul tour puisque le mécanisme de changement de feuille n'est pas encore construit, donc le collage sera réalisé sur la colonne C))
For i = 3 To 3
Range(Cells(1, i), Cells(651, i)).Select
Selection.Copy
Sheets("Feuil1").Select
Range("C1: C651").Select
Selection.Paste (erreur: proprieté ou méthode non gerée par cet objet)
Next
Le message d'erreur apparaît peut importe la destination du collage, je pense que le problème viens de la méthode employée, mais je ne vois pas d'où.
Merci encore pour votre aide!
Salumanu
Je vais surement dire une bétise mais pour moi ce qui me paraitrait logique :
Tu lui demandes Selection.Paste (ce qui veut dire coller la selection) sauf qu'entre le moment où tu as copié ta selection et le moment de ton collage, tu as effectué 2 autres instructions "Select" et donc je pense que la "Selection" copiée, n'est plus en mémoire.
Essais avec :
ActiveSheet.Paste
Cordialement,
Super ça marche! Merci beaucoup!
J'avais aussi pensé a ce type de problème mais quand j'ai lancé la macro pas à pas les deux sélections s'affichaient bien sur les cellules.
Merci encore!
Salumanu
Après c'est possible que cela ne soit pas la raison du message mais bien une erreur de syntaxe ^^
Bonne fin de journée