Bonjour,
La question de la dernière ligne a été déjà bien fouillée
http://www.developpez.net/forums/d45...ees-d-feuille/
et pourtant ....
Je suis confronté à rechercher la dernière ligne dans une feuille où je ne sais pas combien de colonnes sont renseignées
les colonnes comportent des vides.
la dernière valeur peut figurer dans n'uimporte quelle colonne.
J'ai fait des tests, mais ceux-ci ne renvoie pas pas les même valeurs.
Ma dernière ligne "réelle" en supposant qu'il n'y a rien d'écrit en blanc où en caractère non visible est la ligne 83
la dernière info colonne A est en 81 mais cellules fusionnées
Donc je cherche. Ce code M'a renvoyé une ligne où je ne voyait pas de valeur c'est à dire 87 !
Donc je me suis dit je vais trouver la colone où il est sensé se trouver quelque chose mais là il me renvoie 256 ! donc la fin de ma feuille
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 'Dernière ligne renseignée de la feuille de calculs DerLig = Worksheets("Feuil2").UsedRange.SpecialCells(xlCellTypeLastCell).Row
Je me suis dit si ma dernière valeur est en colonne A c'est normal Me renvoie bien 81 (ça j'ai l'haibitude de l'utiliser.)
Code : Sélectionner tout - Visualiser dans une fenêtre à part Dernierecol = Range("A87").End(xlToRight).Column
Donc je vérifie la dernière ligne en colonne A
La séquence suivante me renvoie aussi 87
Code : Sélectionner tout - Visualiser dans une fenêtre à part DerniereLigne = Range("A100").End(xlUp).Row
Je précise que je n'ai pas supprimé de lignes et que j'ai sauvegardé mon fichier avant de lancer la recherche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Dim Ligne As Long Ligne = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Row
En désespoir de cause j'ai fait une boucle, mais c'est pas très pro.
En fait dans les tutos on trouve pleins d'exmples mais ils ne sont pas universels.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 ma_der_ligne = 0 For i = 1 To 256 cur_ligne = Cells(100, i).End(xlUp).Row If cur_ligne > ma_der_ligne Then ma_der_ligne = cur_ligne End If Next MsgBox ma_der_ligne End Sub
donc existe-t-il UNE et UNE seule fonction qui marche à tous les coup ?
Denis
Partager