Macro
f894009 Messages postés 17417 Date d'inscription Statut Membre Dernière intervention -
Débutante dans les macros, je chercher à copier la dernière ligne non-vide et ses 40 précédentes lignes d'une feuille excel à une autre. donc dans le même fichier.
Merci d'avance!
Claire
3 réponses
La demande porte sur une macro Excel qui copie la dernière ligne non vide et les lignes précédentes d'une feuille vers une autre dans le classeur, en s'appuyant sur un nom de cellule Recapitulatif. La solution consiste à déterminer la ligne via le nom Recapitulatif et End(xlUp) sur une colonne, puis à copier la plage A Adr:C derlig dans la feuille cible. Des erreurs fréquentes apparaissent dans les premiers essais (xlUp vs x1Up, guillemets), et l'option retenue montre l'usage des objets Worksheets et Range associée à un Resize pour adapter la destination. D'autres échanges évoquent l'ajout d'un second récapitulatif et la possibilité de limiter la sélection entre la dernière ligne non vide et Recapitulatif lorsque le nombre de lignes varie.
-
Bonjour,
Une facon de faire:
Sub copie() With Worksheets("feuil1") 'adaptez le nom de la feuille derlig = .Range("A" & Rows.Count).End(xlUp).Row 'derniere cellule non vide colonne A 'copie valeurs 'adaptez le nom de la feuille, derniere ligne-40: 41, colonne Z: 26 adptez la derniere colonne Worksheets("feuil2").Range("A1").Resize(41, 26) = .Range("A" & derlig - 41 & ":Z" & derlig).Value End With End Sub-
-
Re,
Sub copie() With Worksheets("feuil1") 'adaptez le nom de la feuille Adr = .Range("Recapitulatif").Row 'ligne de depart derlig = .Range("A" & Rows.Count).End(xlUp).Row 'derniere cellule non vide colonne A 'copie valeurs 'adaptez le nom de la feuille, colonne Z: 26 adaptez la derniere colonne Worksheets("feuil2").Range("A1").Resize(Adr, 26) = .Range("A" & Adr & ":Z" & derlig).Value End With End Sub -
-
-
-
-
Cellule A191 de la feuille "358.1"
Sachant que ce mot "Recapitulatif1" pour changer de ligne. -
-
Re,
code puisque vous ne pouvez pas ouvrir un fichier exterieur
Sub Recap() With Worksheets("358.1") Adr = .Columns(1).Find("Recapitulatif1", .Cells(1, 1), , xlWhole).Row derlig = .Range("A" & Rows.Count).End(xlUp).Row .Range("A" & Adr & ":H" & derlig).Copy Worksheets("Comparatif").Range("A1").Resize(derlig + 1 - Adr, 8) End With End Sub -
-
-
Hello!
Super ça fonctionne très bien! Merci
Maintenant j'aimerais ajouter a la suite de cette macro dans "comparatif" un autre récapitulatif.
En fait j'ai un autre onglet "358.2" avec une récap a la fin et j'aimerais qu'elle se copie en dessous de la recap de l'onglet "358.1" dans "Comparatif".
Je sais pas si c'est très clair!!??
Sachant que le nombre de lignes peuvent varier. -
-