Exécution multiple

Bonjour à tous!

Je me trouve devant un problème pas très grave en soi, mais qui me laisse quand même un peu perplexe.

J'ai créé cette macro:

Sub esssai()
Dim I As Integer
For I = 1 To 300
    If (Cells(I, 1) = "Entité" Or Cells(I, 1) = "" Or Cells(I, 1) = "Total") Then
        Rows(I).Delete
    End If
Next
End Sub

chargée de supprimer les lignes dont la première cellule contient certaines valeurs. Problème: je suis obligé de lancer la macro plusieurs fois pour que les lignes soient bien toutes supprimées, la macro semblant en louper quelques unes à chaque fois... Comment est-ce possible? Du coup, je peux créer une boucle qui exécute fois la macro pour être sûr, et c'est ok, mais je suis quand même étonné...

Pierre

Bonjour,

Regarde ce post je crois qu'il correspond à ce que tu cherche à faire.

Bonjour,

Essaie comme cela

Sub esssai()
Dim I As Integer
For I = 300 To 1 Step -1
    If (Cells(I, 1) = "Entité" Or Cells(I, 1) = "" Or Cells(I, 1) = "Total") Then
        Rows(I).Delete
    End If
Next
End Sub

A+

Bonjour,

A tester

Option Explicit
Public Sub esssai()
Dim Derligne As Integer, i As Integer

    Application.ScreenUpdating = False
    Derligne = Range("A" & Rows.Count).End(xlUp).Row
    For i = Derligne To 1 Step -1
        If Cells(i, 1) = "Entité" Or Cells(i, 1) = "" Or Cells(i, 1) = "Total" Then Rows(i).Delete
    Next

End Sub

Merci à tous les deux, vos codes fonctionnent très bien!

Mais j'aimerais comprendre: pourquoi la boucle en ordre croissant ne faisait pas le job?

Rechercher des sujets similaires à "execution multiple"