Potresti invertire il controllo dall'ultimo al primo.
Non ho provato, ma potrebbe essere un'alternativa.
codice:
For X As Int32 = tblTot.Rows.Count To 0 Step - 1
If CInt(tblTot.Rows(X).Item("LANDA")) = 0 And _
CInt(tblTot.Rows(X).Item("SOLD")) = 0 And _
CInt(tblTot.Rows(X).Item("AVAIL")) = 0 And _
CInt(tblTot.Rows(X).Item("TSOLD")) = 0 And _
CInt(tblTot.Rows(X).Item("XSOLD")) = 0 And _
CInt(tblTot.Rows(X).Item("SGL")) = 0 And _
CInt(tblTot.Rows(X).Item("TRP")) = 0 And _
CInt(tblTot.Rows(X).Item("INDEP")) = 0 And _
CInt(tblTot.Rows(X).Item("GRDEP")) = 0 And _
CInt(tblTot.Rows(X).Item("INOPT")) = 0 And _
CInt(tblTot.Rows(X).Item("GROPT")) = 0 And _
CInt(tblTot.Rows(X).Item("TWINS")) = 0 And _
CInt(tblTot.Rows(X).Item("SFEMS")) = 0 And _
CInt(tblTot.Rows(X).Item("SMALS")) = 0 Then
tblTot.Rows(X).Delete()
End If
Next
Ciao,