Probleme pr copier coller en VBA

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
Configuration: Windows 2000
Internet Explorer 6.0

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    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
    1. Contributeur
      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+
      1. 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.
        1. Contributeur
          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.
          1. Contributeur
            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
            1. Merci beaucoup ca marche!!!!
              A bientot