XL 2016 Boucle For ne s'exécute pas comme une boucle et boucle infinie

Stéphane_1

XLDnaute Nouveau
Bonjour,

Dans mon programme je peut créer jusqu'à 2 lignes à partir d'une, et des valeurs sont modifiées dans les 3 lignes. J'ai demandé au programme de s'assurer que ces valeurs n'étaient pas égale à 0 et de supprimer la ligne si c'était le cas. Sauf qu'après être passé sur les conditions au lieu de recommencer pour i =1 et i = 2 il passe directement à la suite. C'est arrivé après que j'ai ajouté I = I - 1, et retirer cette ligne n'a évidemment rien changé. Quand la boucle s'exécutait "correctement" c'était une boucle infinie, je ne sais pas pourquoi.

Voici mon code :

For I = 0 To I > 2

If ActiveCell.Offset(I, -1).Value = 0 Then

Rows(ActiveCell.Row + I).EntireRow.Delete
I = I - 1

ElseIf ActiveCell.Offset(I, 0).Value = 0 Then

Rows(ActiveCell.Row + I).EntireRow.Delete
I = I - 1

End If

Next I

PS :

Merci d'avance pour vos réponses
 
Dernière édition:
Solution
C'est bon, j'ai résolus la boucle infini en commençant par I = 2 et aves Step -1. Ma boucle finale donne ça :
VB:
For I = 2 To 0 Step -1
            
    If ActiveCell.Offset(I, -1).Value = 0 Or ActiveCell.Offset(I, 0).Value = 0 Then
                
        Rows(ActiveCell.Row + I).EntireRow.Delete
                
    End If
            
Next I

Stéphane_1

XLDnaute Nouveau
C'est bon, j'ai résolus la boucle infini en commençant par I = 2 et aves Step -1. Ma boucle finale donne ça :
VB:
For I = 2 To 0 Step -1
            
    If ActiveCell.Offset(I, -1).Value = 0 Or ActiveCell.Offset(I, 0).Value = 0 Then
                
        Rows(ActiveCell.Row + I).EntireRow.Delete
                
    End If
            
Next I
 

Discussions similaires

Statistiques des forums

Discussions
313 322
Messages
2 097 141
Membres
106 851
dernier inscrit
Rv34