Suppression de ligne en fonction de deux cellule vide spécifique

Bonjour je reviens vers vous car je n'arrive pas à identifier mon problème.

Je viens de rédiger une macro qui à pour but de supprimer une ligne si deux de ses cellules sont vides. Et cela jusqu'à la dernière ligne trouvé.

Je joins un fichier en ex.

Merci d'avance.

28fichiertest3.xlsm (20.59 Ko)

Bonsoir,

Losqu'on supprime des éléments, on ne les parcourt pas du premier au dernier, car à chaque suppression on change les rangs de ceux qui suivent, ce qui entraînera inévitablement des erreurs...

On parcourt du dernier au premier :

    For i = dln To 1 Step -1
        'instructions
    Next i

Et si tu laisses des MsgBox dans ta boucle, tu vas les afficher à chaque ligne !

Cordialement.

Merci pour votre retour MFerrand

j'essais de suite

malheureusement rien ne se passe...

Je l'ai réécrite proprement, et indentée .

Sub macropb()
    Dim i%, dln%
    With Worksheets("Sheet1")
        dln = .Range("A" & .Rows.Count).End(xlUp).Row
        Application.ScreenUpdating = False
        For i = dln To 1 Step -1
            If .Cells(i, 7) = "" And .Cells(i, 8) = "" Then
                .Rows(i).Delete
            End If
        Next i
    End With
End Sub

Et elle fonctionne !

NB- une macro ordinaire n'a rien à faire dans ThisWorkbook...

Cordialement.

Mferrand vous merité une médaille!!!!

Je m'apperceois que vous avez changé la façon de déclarer dln. Vous êtes passé par .Range alors que je suis passé par Cells. est ce la bonne façon de procédé et si oui pourquoi?

En vous remerciant par avance pour votre retour si rapide.

Y'avait déjà Range, je l'ai pas rêvé...

Par contre j'ai oublié de rajouter les points devant Cells, je vais le faire !

oui effectivement ^^

il est un peu tard je me perd dans mes macros ^^

je voulais parler de la déclaration de fin de ligne.

Quelle est la différence entre ces deux déclarations?

Range("a65536").End(xlUp).Row

Range("A" & .Rows.Count).End(xlUp).Row

Aucune différence dans le résultat si on ne dépasse pas ce nombre de ligne...

65536 était le nombre de lignes d'une feuille sous Excel 2003, depuis 2007 on est passé à 1048576. Cette formulation est compatible avec les deux versions.

Rechercher des sujets similaires à "suppression ligne fonction deux vide specifique"