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
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.
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.
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.
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.