Copier/coller ligne avec insertion

Bonjour,

J'aimerai créer une macro qui copie la deuxième ligne d'une colonne et qui l'insert a l'avant dernière ligne de cette même colonne.

J'ai déjà commencé le code mais j'arrive pas à l'insérer.

Pouvez-vous m'aider?

Sub ligne_nouvelle_action()

Range("d1").Select
ActiveCell.End(xlDown).Select
ActiveCell.Offset(2, 0).Select
Selection.EntireRow.Copy

Range("d10000").Select
ActiveCell.End(xlUp).Select
ActiveCell.Offset(-1, 0).Select

ActiveSheet.Paste
Application.CutCopyMode = False
End Sub

Bonjour david B.Lim, le forum,

Un essai....à partir de l'enregistreur de macro....

Sub Macro1()
 Dim lig%, derlig%
  With Sheets("Feuil1") 'à adapter
   lig = 2
   derlig = .Range("D" & Rows.Count).End(xlUp).Row
    .Range("D" & lig).Copy
    .Range("D" & derlig).Insert Shift:=xlDown
  End With
  Application.CutCopyMode = False
End Sub

Cordialement,

Bonjour xorsankukai,

Merci pour ta réponse, seulement cette macro est pas tout à fait comme je la souhaite.

Je vais essayer de mieux identifier ma demande :

- dans la colonne D, il y a des cellule vide de D1 à D(variable) avant le début d'un tableau

- j'aimerai sélectionner toute la deuxième la ligne a partir du début du tableau et la copier

- ensuite j'aimerai la coller avec insertion dans l'avant dernière ligne de ce même tableau

Dans l'exemple de mon code, cela fonctionne mais ça écrase la ligne de réception.

J'aimerai pouvoir inséré cette ligne copier au lieu d'écraser la ligne de réception.

Merci

Sub ligne_nouvelle_action()
Range("d1").Select
ActiveCell.End(xlDown).Select
ActiveCell.Offset(2, 0).Select
Selection.EntireRow.Copy
Cells(Cells(Rows.Count, 4).End(xlUp).Row + 1, 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub

Re,

Nouvel essai....

Sub Macro1()
 Dim lig%, derlig%
  With Sheets("Feuil1") '................................à adapter
      lig = .Range("D1").End(xlDown).Row + 1 '...........2ème cellule remplie en colonne D
   derlig = .Range("D" & Rows.Count).End(xlUp).Row '.....dernière ligne en colonne D
    .Range("D" & lig).Copy '.............................copie la valeur
    .Range("D" & derlig).Insert Shift:=xlDown '..........insert la valeur
  End With
  Application.CutCopyMode = False
End Sub
3david.xlsm (41.18 Ko)

Cordialement,

Super l'emplacement a copier et coller avec inséré fonctionne mais il faudrait prendre toutes la ligne!

c'est la fonction "entire.rows" ?

Re,

On va y arriver....

Sub Macro1()
 Dim lig%, derlig%, dercol%
  With Sheets("Feuil1") 'à adapter
       lig = .Range("D1").End(xlDown).Row + 1 '....................2ème cellule remplie en colonne D
    dercol = .UsedRange.Columns.Count + 3 '........................dernière colonne
    derlig = .Range("D" & Rows.Count).End(xlUp).Row '..............dernière ligne en colonne D
    .Range(.Cells(lig, 4), .Cells(lig, dercol)).Copy
    .Range("D" & derlig).Insert Shift:=xlDown
  End With
  Application.CutCopyMode = False
End Sub
10david-v2.xlsm (17.91 Ko)

Crdlt,

ce code ne copie que la ligne D9:K9, hors il faudrait copié toute la ligne 9 et l'insérer a l'avant dernière ligne!

Re,

D'où l'importance de joindre un fichier représentatif du résultat escompté,

Allez, on y croit:

Sub Macro1()
 Dim lig%, derlig%
  With Sheets("Feuil1") 'à adapter
       lig = .Range("D1").End(xlDown).Row + 1 '....................2ème cellule remplie en colonne D
    derlig = .Range("D" & Rows.Count).End(xlUp).Row '..............dernière ligne en colonne D
     Rows(lig).EntireRow.Copy
     Rows(derlig).Insert Shift:=xlDown
  End With
  Application.CutCopyMode = False
End Sub

Crdlt,

Super, merci beaucoup pour tes réponses!

A +

Rechercher des sujets similaires à "copier coller ligne insertion"