Macro copie colle ne fonctionne qu'a moitié

Bonjour

Comment procéder pour que les plages A3:A14 et C3:C14 se collent bien à la suite en J47:J500

Je vous remercie

Sub copiet1()

        Sheets("Feuil1").Select
    Range("A3:A14").Select
    Selection.Copy
    Sheets("Feuil2").Select
    Range("J47:J500").Select
    ActiveSheet.Paste
  Application.CutCopyMode = False

       Sheets("Feuil1").Select
    Range("C3:C14").Select
    Selection.Copy
    Sheets("Feuil2").Select
    Range("J47:J500").Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
End Sub

Bonjour,

Il me semble qu'avec ton code les plages Range("A3:A14") et Range("C3:C14") doivent se copier l'une sur l'autre en Range("J47:J500"), sauf erreur de ma part
Pour qu'elles puissent se copier l'une à la suite de l'autre, il faudrait faire un petit test qui te permettrait de déterminer la dernière ligne de la première plage recopiée afin de préciser la position de la deuxième plage
Bonne journée

Merci pour ta réponse ,mais ce que tu me demandes je sais pas faire.

Bonjour,

Ci-après 2 propositions suivant le résultat voulu.

Sub copiet1()
  ' pour coller dans la dernier ligne dispo de la colonne J (10e colonne)
  With ThisWorkbook 
    .Worksheets("Feuil1").Range("A3:A14").Copy .Worksheets("Feuil2").Cells(10000, 10).End(xlUp).Offset(1, 0)
    .Worksheets("Feuil1").Range("C3:C14").Copy .Worksheets("Feuil2").Cells(10000, 10).End(xlUp).Offset(1, 0)
  End with
  Application.CutCopyMode = False
End Sub

Sub copiet2()
  ' pour coller toujours en J47 et en dessous
  With ThisWorkbook
    With .Worksheets("Feuil2").Range("J47")
      Range(.Cells, .End(xlDown)).ClearContents
    End With
    .Worksheets("Feuil1").Range("A3:A14").Copy .Worksheets("Feuil2").Range("J47")
    .Worksheets("Feuil1").Range("C3:C14").Copy .Worksheets("Feuil2").Range("J47").End(xlDown).Offset(1, 0)
  End with
  Application.CutCopyMode = False
End Sub

Avant de recopier la deuxième plage, tu détermines la dernière ligne de la plage précédente recopiée dans la feuille 2, par exemple de la façon suivante

der = WorkSheets("Feuil2").Range("J65536").End(xlUp).Row

et maintenant tu recopies la plage2 à partir du numéro de la ligne

For I= der + 1 To fin'      fin étant le nombre de lignes à recopier
.......
......
Next I

A essayer

bonjour le fil,

2 remarques,

  • c'est plus facile d'utiliser rows.count au lieu de +65.000 ou 10.000
  • si votre source contient des formules, le résultat peut être faux, donc c'est peut-être mieux de coller les valeurs.
Worksheets("Feuil1").Range("C3:C14").Copy
Worksheets("Feuil2").Range("J" & rows.count).End(xlup).Offset(1).pastespecial xlvalues
Rechercher des sujets similaires à "macro copie colle fonctionne moitie"