web-dev-qa-db-fra.com

Obtention du nombre de cellules remplies dans une colonne (VBA)

Ma première colonne est un index, avec des nombres en augmentation monotone, qui se termine à un point non prévisible. Maintenant, je veux savoir combien d'entrées cette colonne contient. Y a-t-il un meilleur moyen que d'itérer à travers cela et de faire attention à une cellule vide?

18
poeschlorn

Une façon consiste à: (Suppose que la colonne d'index commence à A1)

MsgBox Range("A1").End(xlDown).Row

Qui recherche la 1ère cellule inoccupée vers le bas à partir de A1 et vous montre son numéro de ligne ordinale.

Vous pouvez sélectionner la cellule vide suivante avec:

Range("A1").End(xlDown).Offset(1, 0).Select

Si vous avez besoin de la fin d'un ensemble de données (y compris les blancs), essayez: Range ("A: A"). SpecialCells (xlLastCell) .Row

15
Alex K.

Si vous souhaitez rechercher la dernière cellule remplie dans une colonne particulière, la meilleure méthode est la suivante:

Range("A" & Rows.Count).End(xlUp).Row

Ce code utilise la toute dernière cellule de la colonne entière (65536 pour Excel 2003, 1048576 dans les versions ultérieures), puis recherchez la première cellule remplie au-dessus. Cela a la capacité d'ignorer les "ruptures" dans vos données et de trouver la vraie dernière ligne.

19
MrKowz

Vous pouvez aussi utiliser

Cells.CurrentRegion

pour vous donner une plage représentant les limites de vos données sur la feuille active actuelle

Msdn dit sur le sujet

Renvoie un objet Range qui représente la région actuelle. La région actuelle est une plage limitée par toute combinaison de lignes vides et de colonnes vides. Lecture seulement.

Ensuite, vous pouvez déterminer le nombre de colonnes via

Cells.CurrentRegion.Columns.Count

et le nombre de lignes via

Cells.CurrentRegion.Rows.Count
5
almog.ori

Vous pouvez également utiliser:

UsedRange.Rows.Count
4
AMIB

Pour trouver la dernière colonne remplie, utilisez ce qui suit:

lastColumn = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column
2
deva ruban