web-dev-qa-db-fra.com

Nombre de lignes où les données existent

J'ai besoin de compter le nombre total de lignes contenant des données. Je veux pouvoir l'utiliser sur plusieurs feuilles avec différentes quantités de lignes de données.

Je ne peux pas comprendre de code générique qui comptera le nombre de lignes de A1-A100 ou A1-A300.

J'essaie d'utiliser quelque chose comme ça.

i = ActiveWorkbook.Worksheets("Sheet1").Range("A2 , Range("A2").End(xlDown)).Rows.Count
8
Patrick Wilson

Si vous avez besoin de VBA, vous pouvez faire quelque chose de rapide comme ceci:

Sub Test()
    With ActiveSheet
    lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
    MsgBox lastRow
    End With
End Sub

Cela imprimera le numéro de la dernière ligne contenant des données. Évidemment, vous n'avez pas besoin de MsgBox là-dedans si vous l'utilisez à d'autres fins, mais lastRow deviendra néanmoins cette valeur.

14
Joe Laviano

En supposant que votre Sheet1 N'est pas nécessairement actif, vous devrez utiliser votre code amélioré:

i = ActiveWorkbook.Worksheets("Sheet1").Range("A2" , Worksheets("Sheet1").Range("A2").End(xlDown)).Rows.Count

Regardez dans la référence complète de la feuille de calcul pour le deuxième argument de Range(arg1, arg2) qui est important dans cette situation.

5
Kazimierz Jawor

J'ai trouvé cette méthode sur http://www.mrexcel.com/

Cela calcule le nombre de cellules non vides dans la colonne A de la feuille de calcul nommée "Données"

With Worksheets("Data")
  Ndt =Application.Range("A:A").Cells.SpecialCells(xlCellTypeConstants).Count
  debug.print Ndt
End With

Le résultat est imprimé dans la fenêtre immédiate. Vous devez soustraire 1 (ou plus) si la colonne A a une ou plusieurs lignes d'en-tête que vous ne souhaitez pas compter.

1
Markm0705
lastrow = Sheet1.Range("A#").End(xlDown).Row

Il est plus facile de déterminer le nombre de lignes.
Assurez-vous de déclarer la bonne variable quand il s'agit de lignes plus grandes.
Soit dit en passant, le signe "#" doit être un nombre où vous souhaitez commencer le décompte des lignes.

0
kyoya007