2017-09-25 16 views
0

J'essaie d'écrire du code qui supprime une ligne si la somme des valeurs de B: H = 0. (Ou si toutes les valeurs de B: H sont 0)Excel VBA - Si la somme d'une plage est 0 - Supprimer la ligne

Actuellement, je suis en train

Dim t 
For t = (9 + UBound(Champ) + UBound(Champ)) To (9 + UBound(Champ)) Step -1 
    If WorksheetFunction.CountA(Range(Cells(t, 2), Cells(t, 8))) = 0 Then 
     Rows(t).EntireRow.Delete 
    End If 
Next t 

Cependant quand je lance dans mon code rien ne se passe. Pas d'erreurs et certainement pas de lignes supprimées. Des idées?

+2

Vous dites 'sum' dans votre titre, mais utilisez' counta' dans votre vba. Est-ce que 'counta()' renvoie 0 pour les lignes 't'? – JNevill

+0

Ah je pensais 'CountA retournerait 0 sur une cellule qui est 0. Mon mauvais, l'a changé pour Sum et ça fonctionne :) – Dullspark

+2

Great! Je suis content que ce fut une solution facile et pas un de ces jours-ci tirant vos cheveux de la tête type de problèmes :) – JNevill

Répondre

0

Remplacer CountA avec Sum. CountA compte si une cellule a une valeur dedans. Evidemment 0 est une valeur et c'était mon erreur