Modification Macro

Bonjour,

Je voudrais savoir si il serait possible de modifier la macro ci-dessous pour qu'elle copie la dernière ligne d'un tableau (ce qu'elle fait déjà) mais uniquement les données de la dernière cellule des colonnes (A. B. C. D. F. G. H. J.)

Actuellement, cette macro copie les données mais aussi les formules des toutes les colonnes mêmes des colonnes cachées (E. I.)

Sub copiecollederniereligne()
Sheets("1").Range("A65536").End(xlUp).EntireRow.Copy Sheets("2").Range("A65536").End(xlUp).Offset(1, 0)
End Sub

Merci à vous.

Bonjour Bayard, bonjour le forum,

Essaie comme ça :

Sub copiecollederniereligne()
Dim O1 As Worksheet
Dim O2 As Worksheet
Dim DL As Long

Set O1 = Sheets("1")
Set O2 = Sheets("2")
DL = O1.Range("A" & Application.Rows.Count).End(xlUp).Row
O2.Range("A9").Value = O1.Cells(DL, 1).Value
O2.Range("B9").Value = O1.Cells(DL, 2).Value
O2.Range("C9").Value = O1.Cells(DL, 3).Value
O2.Range("D9").Value = O1.Cells(DL, 4).Value
O2.Range("E9").Value = O1.Cells(DL, 6).Value
O2.Range("F9").Value = O1.Cells(DL, 7).Value
O2.Range("G9").Value = O1.Cells(DL, 8).Value
O2.Range("H9").Value = O1.Cells(DL, 10).Value
End Sub

Bonjour ThauThème,

Effectivement cela fonctionne pile poil.

Je venais juste de finir de bricoler une macro qui fait la même chose mais en moins fin.

J'ai pris différentes macros trouvées sur le net que j'ai adapté pour mon besoin.

Voila la chose:

Sub Bouton1_Clic()
 Application.ScreenUpdating = False
     Sheets("Données").Select
     Rows(Range("A65535").End(xlUp).Row).Select
     Selection.SpecialCells(xlCellTypeVisible).Select
     Selection.Copy
     Sheets("Recap").Select
     Range("A" & Range("A65535").End(xlUp).Row + 1).Select
     ActiveSheet.Paste
     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
     Range("A" & Range("A65535").End(xlUp).Row + 1).Select
 Application.ScreenUpdating = True
 End Sub

Je pense quand même conserver la tienne qui est plus net, plus fine

Re,

Toujours éviter les Select inutiles qui ne font que ralentir l'exécution du code ! Avec juste deux variables de type Worksheet ton code devient :

Sub Bouton1_Clic()
Dim D As Worksheet
Dim R As Worksheet

Set D = Sheets("Données")
Set R = Sheets("Recap")
Application.ScreenUpdating = False
D.Rows(Range("A65535").End(xlUp).Row).SpecialCells(xlCellTypeVisible).Copy
R.Range("A" & Range("A65535").End(xlUp).Row + 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
   :=False, Transpose:=False
Application.ScreenUpdating = True
End Sub

Encore plus fin que ma première réponse !....

Rechercher des sujets similaires à "modification macro"