Probleme pr copier coller en VBA

Fermé
pascale4210 - 17 juil. 2008 à 10:59
 pascale4210 - 17 juil. 2008 à 15:59
Bonjour,

Je dois créer une macro dans le cadre de mon stage mais la je suis bloquée, une erreur apparait comme quoi la plage que je copie est incompatible ac celle ou je veux coller. Voici mon code

Sub Macro1()
For I = 2 To Sheets.Count
Sheets(I).Select
Dim MaLigne As Variant
MaLigne = Range("C65536").End(xlUp).Address
MaLigne = Range(MaLigne).Row

Rows(MaLigne).Select
Selection.Copy
Sheets("Sommaire").Select
Cells(I, 6).Select
Selection.PasteSpecial Paste:=xlValues


Next I

'
End Sub


Si qqn trouve l'erreur ca serait vraiment tres cool!!!
Merci d'avance
A voir également:

5 réponses

eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
17 juil. 2008 à 11:56
Bonjour,

déjà peut-être Paste:=xlPasteValues...

mais surtout tu cherches à coller une ligne entière (256 colonnes sur excel 2003) en te positionnant en colonne 6, forcément ça rentre pas...
Donc soit colle en colonne A, soit réduit ton copier à ce qui est nécessaire (avec .End(xlToLeft) par exemple)

et tu peux écrire directement :
Dim MaLigne as long
MaLigne = Range("C65536").End(xlUp).Row

eric
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
17 juil. 2008 à 12:38
Bonjour,
Pour copier pas besoin de faire les sélection...

NbColo = 10
Range(Cells(Maligne, 1), Cells(i, NbColo)).Copy _
Destination:=Sheets("Sommaire").Cells(i, 6)

Plus moyen de mettre les balises code ???? ni les autres d'ailleurs ????
A+
0
Merci pour vos réponses.
JE suis tres interressée par ta réponse eric mais je n'ai pas bien saisi comment utilisé le ".End(xlToLeft)" car je ne peux pas copier en A car j'ai déja une autre macro qui le fait....
Faut il que je le mette lorsque je selectionne ma ligne u lorsque je la copie???

Désolé ca fait maintenant 3 jours que je me suis mise à VBA....

Merci d'avance.
0
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
17 juil. 2008 à 14:05
XlToLeft c'est si tu veux la dernière colonne de la feuille
XlUp c'est pour trouver la dernière ligne de la feuille.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 214
17 juil. 2008 à 15:17
tu as la ligne qui t'interesse dans Maligne,
pour copier de la colonne A à la dernière colonne de cette ligne tu fais :
Range(Cells(maligne, 1), Cells(maligne, 256).End(xlToLeft)).Copy

Cells(maligne, 1) : de la colonne A
Cells(maligne, 256).End(xlToLeft) : tu pars de la dernière cellule de ta ligne (colonne 256 donc) et tu lui dis d'aller sur la 1ère cellule remplie en allant vers la gauche (ça sera donc la dernière de ta ligne).

eric
0
Merci beaucoup ca marche!!!!
A bientot
0