Copier et coller la dernière ligne d'un table

playman96 -  
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour tout le monde.

Sur Excel 2002 je cherche intégrer à un bouton une macro qui me permet de prendre la dernière ligne de mon tableau de la copier et la coller sur la ligne vide juste en dessous pour faire le bouton et l’affectation de la macro il n’y a pas de problème mais c’est pour l’écrire que ça ce gâte je dois avouer que je ne suis pas super bon pour ça ^^

Merci d’avances pour vaux réponse.
A voir également:

4 réponses

pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 768
 
Bonjour,
Le code n'est pas très compliqué :

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

Je viens de tester la macro mais, au lieu de me l'insérer sur la première ligne vide en bas de mon tableaux il me met la lgine copier entre la ligne 2 et 3

Ps: désoler de ma réponse tardive.
0
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 768
 
Bonjour,
La colonne A de votre tableau est elle complète?
Je ne le pense pas.
Si la colonne B (ou D ou n'importe qu'elle colonne) est plus "longue" que la colonne A, la macro ne fonctionnera pas...
Il convient de remplacer les 2 A dans :

Sheets("Feuil1").Range("A65536").End(xlUp).EntireRow.Copy Sheets("Feuil1").Range("A65536").End(xlUp).Offset(1, 0)

par le nom de la colonne susceptible d'être la plus longue. Exemple avec la colonne F :

Sheets("Feuil1").Range("F65536").End(xlUp).EntireRow.Copy Sheets("Feuil1").Range("F65536").End(xlUp).Offset(1, 0)

Cela vous convient il mieux?

Si vous ne pouvez prévoir à l'avance qu'elle est votre colonne la plus "longue" et donc la dernière ligne, il vous faut utliser cette macro :

Sub copiecollederniereligne()
Dim Derlig As Integer
ActiveWorkBook.Save
Derlig = Range("A1").SpecialCells(xlCellTypeLastCell).Row
Sheets("Feuil1").Range("A" & Derlig).EntireRow.Copy Sheets("Feuil1").Range("A" & Derlig).Offset(1, 0)
End Sub

ATTENTION toutefois, cette macro enregistre au préalable votre classeur. S'il y a des erreurs, des oublis, trop tard!
0
playman96
 
Bonjour,

je n'ai pas de colonne qui peut être plus grande que la A, car je fais mes saisie par ligne voici en gros comme se présente mon fichier c'est pour enregistrer des heures sup :

colonne A=Date; B= le nom de l'employer;C=début des heur; D=Fin; Etc....

et a chaque nouvelle entrée je copie la dernière ligne remplie (car il y a plusieurs calcules et mise en forme) pour l'insérer sur la ligne du dessous

ce que je souhaiterais c'est faire une macro qui fait le copier coller automatiquement
0
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 768
 
Donc si ta feuille s'appelle bien Feuil1, cela doit fonctionner... Si non adaptez la macro en mettant votre nom de feuille.
0