Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 copy paste delete

herve62

XLDnaute Barbatruc
Supporter XLD
Bonjour
Je dois sélectionner des lignes pour col de A à K d'une feuille pour copier TOUT ( format ....etc ) sur une autre feuille
et supprimer la ligne d'origine
Quelle serait le code pour faire au plus court et simple , là je fais du point par point : select ; copie ; delete ; coller
merci
 

job75

XLDnaute Barbatruc
Bonjour herve62,

Le plus court et simple :
VB:
Sub Test()
Selection.Copy Feuil2.[A1]
Selection.Delete xlUp
End Sub
Mais pas le plus rapide s'il y a beaucoup de lignes disjointes à supprimer.

A+
 

job75

XLDnaute Barbatruc
Avec beaucoup de lignes disjointes il faut un tri pour regrouper et accélérer :
VB:
Sub Copier_sans_tri()
Dim t
t = Timer
With [A:A].SpecialCells(xlCellTypeConstants).EntireRow
    .Copy Feuil2.[A1]
    .Delete
End With
MsgBox Timer - t
End Sub

Sub Copier_avec_tri()
Dim t
t = Timer
With [A:A]
    .SpecialCells(xlCellTypeConstants).EntireRow.Copy Feuil2.[A1]
    .Resize(, 11).Sort .Cells(1), Header:=xlNo 'tri pour regrouper et accélérer
    .SpecialCells(xlCellTypeConstants).EntireRow.Delete
End With
MsgBox Timer - t
End Sub
Salut patricktoulon.
 

Pièces jointes

  • Copier(1).zip
    876.3 KB · Affichages: 13

herve62

XLDnaute Barbatruc
Supporter XLD
Bon jour
merci des réponses mais j'ai utilisé ça et c'est ok
VB:
.Range("A" & x & ":k" & x).Copy
Worksheets("PA soldé").Range("A" & D_sold & ":K" & D_sold).PasteSpecial (xlPasteAll)
.Range("A" & x & ":k" & x).Delete xlUp
pour le temps c'était pas important : une centaine de lignes je parlais de court en temps que code
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…