Pour éviter les boucles et profiter de la vitesse d'exécution quasi-instantanée, vous pouvez utiliser la méthode Excel.WorksheetFunction.CountA
, qui renvoie le même résultat que la fonction = feuille de calcul NBVAL().
En supposant que votre référence Excel.Application est nommé 'excelApp' et votre référence Excel.Worksheet est nommé 'feuille de calcul', vous pouvez utiliser le code comme suit dans C# 4.0:
// C# 4.0
int dataCount = (int)excelApp.WorksheetFunction.CountA(worksheet.Cells);
if (dataCount == 0)
{
// All cells on the worksheet are empty.
}
else
{
// There is at least one cell on the worksheet that has non-empty contents.
}
En C# 3.0 et ci-dessous, il est un peu plus bavard, parce que vous devez fournir explicitement les arguments optionnels manquants:
// C# 3.0 and below
int dataCount = (int)excelApp.WorksheetFunction.CountA(
worksheet.Cells,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
if (dataCount == 0)
{
// All cells on the worksheet are empty.
}
else
{
// There is at least one cell on the worksheet that has non-empty contents.
}
Je pense que cela devrait le faire pour vous!
Mike
Je sais que c'est vieux, mais en plus des réponses éteins ces événements, remplir feuille de calcul, puis les rallume: 'currentInstance.EnableEvents = false/true; currentInstance.ScreenUpdating = false/true; ' –