Probleme pr copier coller en VBA
pascale4210
-
pascale4210 -
pascale4210 -
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
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:
- Probleme pr copier coller en VBA
- Historique copier coller - Guide
- Copier coller pdf - Guide
- Style d'écriture a copier coller - Guide
- Historique copier coller windows - Accueil - Informatique
- Copier coller multiple - Guide
5 réponses
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
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
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+
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+
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.
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.
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.
XlUp c'est pour trouver la dernière ligne de la feuille.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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