Macro
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-
-
@ClaireRe,
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 -
-
-
@f894009Je vois pas l'erreur!! Je nage complétement là!
Sub Recap()
With Worksheets("358.1")
Adr = .Range("Recapitulatif").Row
derlig = .Range("A" & Rows.Count).End(x1Up).Row
Worksheets("Comparatif").Range("A1").Resize(Adr, 8) = .Range("A" & Adr & ":C" & derlig).Value
End With
End Sub
-
-
Cellule A191 de la feuille "358.1"
Sachant que ce mot "Recapitulatif1" pour changer de ligne. -
Dsl pour le mal entendu.
Le format avec si possible svp!
Merci ;-)-
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 -
-
@ClaireA demain
-
@f894009Hello!
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. -
@ClaireBonjour,
Mettez votre fichier à disposition pour avoir la feuille supplémentaire
-