Comment connaître les numéros des dernière ligne et dernière colonne renseignées d'une plage de données.
Récapitulatif de diverses méthodes possibles :
UsedRange - 1
Donne le nombre de lignes renseignées de la feuille où qu'elle soient
Si les lignes 1 à 10 et 17 à 19 sont vides, mais que les lignes 11 à 16 et 20 à 24 sont renseignées, donne 11 (6 + 5)
NbLignes = ActiveSheet.UsedRange.Rows.Count
UsedRange - 2
Donne la première ligne renseignée de la feuille
LaPremièreLigne = ActiveSheet.UsedRange.Row
CurrentRegion - 1
Donne la dernière ligne de la Plage
S'il n'y a pas de ligne vide dans la plage de données, que la cellule "Cel" se trouve dans la plage de données, donne la dernière ligne de la plage de données, non de la feuille
DerniereLigne = Range(Cel).CurrentRegion.End(xlDown).Row
CurrentRegion – 2
Donne l'adresse de la plage
S'il n'y a pas de ligne vide dans la plage de données, si la cellule "Cel" se trouve dans la plage de données, donne la plage de données.
Ex : Cel = "A15" où "$A$15" et se trouve donc dans la plage A4:N25
Plage = Range("A15").CurrentRegion.Address(False, False) 'Ex : "A4:N25"
Range(Col 65536).End(xlUp) (VBA2003 et antérieur)
Donne la dernière ligne de la feuille pour la colonne
Pour connaître la dernière ligne absolue renseignée de la colonne A
DerniereLigne = Range("A65536").End(xlUp).Row
Cells(Columns(1).Cells.Count, 1).End(xlUp).Row(Toutes versions y compris 2007)
Donne la dernière ligne de la feuille pour la colonne
Pour connaître la dernière ligne absolue renseignée de la colonne A
DerniereLigne = Cells(Columns(1).Cells.Count, 1).End(xlUp).Row
Range("A1").End(xlDown)
Si la colonne A n'est pas vide, donne la dernière ligne de la plage de cellules pour la colonne A
Pour connaître la dernière ligne de la plage de cellules renseignées commençant range("A1")
DerniereLigne = Range("A1").End(xlDown).Row
Range(Col & NoLigne).End(xlDown).Row
Donne la dernière ligne d'une plage de cellules renseignées à partir de la ligne NoLigne, colonne Col
Pour connaître la dernière ligne de la plage renseignée, colonne C, commençant NoLigne = 15
DerniereLigne = Range("C" & NoLigne).End(xlDown).Row
Range(...).SpecialCells(xlCellTypeLastCell)
S'il existe ou non des lignes vides dans dans la feuille, donne la dernière ligne absolue de la feuille
Attention : Si des lignes sont supprimées dans la plage, enregistrer le fichier pour avoir le réel N° de la dernière ligne (idem pour les colonnes supprimées)
DerniereLigne = Range("A1").SpecialCells(xlCellTypeLastCell).Row
Range(...).SpecialCells(xlCellTypeLastCell).address
Donne l'adresse absolue de la dernière cellule renseignée de la feuille
AdresseAbsolue = Range("A1").SpecialCells(xlCellTypeLastCell).address
Pour les colonnes
C'est pareil… mais pour les colonnes (!)
1 2 3 4 5 6
| DerniereColonne = ActiveSheet.UsedRange.Columns.Count
DernièreColonne = Selection.CurrentRegion.End(xlToRight).Column
DerniereColonne = Range("A1").End(xlToRight).Column
DerniereColonne = Range("IV1").End(xlToLeft).Column
'où IV est la dernière colonne d'une feuille de calculs => 256)
DerniereColonne = Range("A1").SpecialCells(xlCellTypeLastCell).Column |
Connaître une plage de cellules
Toutes les combinaisons sont possibles. Exemple :
1 2
| Plage = Range(Cells(1,1), Cells(Range("A65536").End(xlUp).Row, _
Range("IV1").End(xlToLeft).Column)).address |
ou en tant qu'objet, avec une instance :
1 2
| Set Plage = Range(Cells(1,1), Cells(Range("A65536").End(xlUp).Row, _
Range("IV1").End(xlToLeft).Column)) |
Plage = Range("A1:" & Range("A1").SpecialCells(xlCellTypeLastCell).Address).Address
Sélection :
Range("A1:" & Range("A1").SpecialCells(xlCellTypeLastCell).Address).select
Partager