Trouver la dernière cellule automatiquement

qidikizzy Messages postés 12 Statut Membre -  
qidikizzy Messages postés 12 Statut Membre -
Bonjour,
Je suis en train d'éditer une macro pour copier plusieurs feuilles sur une même feuille. Pour la continuité d'enregistrement des données, la plage sélectionnée et copiée depuis la feuille d’origine sur l'autre feuille est à entrer manuellement chaque fois. Cela signifie que la dernière cellule de la plage est à changer chaque fois dans la macro.
La macro est la suite ; la deuxième ligne ("L21") doit être changée à chaque fois que des données sont ajoutées dans la feuille "cutting".

Sheets("cutting").Select
Range("A2:L21").Select
Selection.Copy
Sheets("copie").Select
Range("A2").Select
Selection.Insert Shift:=xlDown
Range("A2:D65536").Select
Application.CutCopyMode = False
Selection.UnMerge
Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

Mes compétences de programmation sont limitées ; néanmoins, je souhaiterai quand même avoir cette dernière cellule automatiquement, est-ce possible? (excel 2003)
A voir également:

3 réponses

michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Bonjour,

Pour trouver la dernière ligne occupée dans une colonne

dim derlig as long
derlig=range("A65536").end(xlup).row

et donc ta cellule

range("A2:L" & derlig)

ou puriste VBA
range(cells(2,1), cells(derlig,12))

bonne journée
Michel
3
qidikizzy Messages postés 12 Statut Membre 1
 
c'est bon mtn, merci bcp.
0
qidikizzy Messages postés 12 Statut Membre 1
 
Merci bcp pour votre réponse, il a l'air sur le bon chemin. Seul problème, il cherche les lignes audessus du A2, non pas en dessous. j'ai changé votre "xlup" à "xldown", ça marche non plus.
1
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Euh,

la ligne 65536 n' a pas été mise au hasard... mais il faut qu'il n'y ait rien sous le tableau

en descendant vers la dernière cellule vide en col A

derlig=range("A2").end(xldown).row
1