Bonjour Manoss, Fred, bonjour le forum,
Ton code est presque correct !... Le mot clé Show s'utilise pour afficher une UserForm. Il faut aussi éviter autant que tu le peux les Select qui ne font que ralentir l'exécution du code. Si tu veux visualiser le numéro de ligne de la dernière cellule éditée d'une colonne (colonne B par exemple) :
MsgBox Range("B" & Application.Rows.Count).End(xlUp).Row
Attention, Si tu utilises un filtre le même code te renverra non plus la dernière cellule éditée mais la dernière cellule après filtre.
Dans ton exemple, sans aucun filtre le message renvoie : 2359
Si je filtre la colonne B (dates) en décochant les mois Juin, juillet et août pour l'année 2016, le message renvoie : 1924
En utilisant le code de Fred adapté :
MsgBox Columns(2).Cells.SpecialCells(xlCellTypeLastCell).Row
le message renvoyé est bizarrement : 3373 ? Ce qui m'amène à penser que sa méthode n'est pas très fiable...
Pour ma part je ne sais pas comment obtenir 2359 avec le filtre utiliser plus haut...
Tu peux aussi, comme l'a proposé Fred, stocker cette valeur dans une variable de type Integer (ou Long si tu dépasses les 32 767 lignes) ou bien de type Range si tu veux l'utiliser comme référence de cellule avec par exemple :
Dim DL As Integer 'ou Long
DL = Range("B" & Application.Rows.Count).End(xlUp).Row
ou
Dim DEST As Range
Set DEST = Range("B" & Application.Rows.Count).End(xlUp)
Tu pourras ensuite utiliser cette variable pour rajouter des donnée avec :
Cells(DL + 1, 1).Value = "Texte1"
Cells(DL + 1, 2).Value = "Texte2"
'etc.
ou
DEST.Offset(1, 0).Value = "Texte1"
DEST.Offset(1, 1).Value = "Texte2"
'etc.