Supprimer des lignes commençant par ... sauf

Bonjour,

J'ai lu pas mal d'informations et de posts mais je n'ai pas réussi à trouver la solution à mon problème

En effet, j'aimerai avoir une macro qui supprime certains comptes comptables. Ils se trouvent sur la colonne E, les comptes à supprimer commencent par 9NP*, 701* et 921*. Jusqu'ici j'ai réussi à faire fonctionner ma macro. Sauf que je ne dois pas supprimer le compte 921900, et la macro le supprime ce qui est logique.

Voilà ce que j'ai fait qui fonctionne:

Sub SupprimerLignes()

Dim I As Single

For I = 100000 To 2 Step -1

If Cells(I, 5).Value Like "9NP*" Then Rows(I).Delete

If Cells(I, 5).Value Like "701*" Then Rows(I).Delete

If Cells(I, 5).Value Like "921*" Then Rows(I).Delete

Next I

End Sub

J'espère que vous allez pouvoir m'aider.

Merci d'avance,

Camille

Bonjour,

Sub SupprimerLignes()
    Dim I As Long
    Application.ScreenUpdating = False
    For I = 100000 To 2 Step -1
        If Cells(I, 5).Value Like "9NP*" Then
            Rows(I).Delete
        ElseIf Cells(I, 5).Value Like "701*" Then
            Rows(I).Delete
        ElseIf Cells(I, 5).Value Like "921*" And CLng(Cells(I, 5)) <> 921900 Then
            Rows(I).Delete
        End If
    Next I
End Sub

eric

Merci pour la réponse mais la macro ne fonctionne toujours pas. Erreur "Incompatibilité de type" sur cette ligne :

ElseIf Cells(I, 5).Value Like "921*" And CLng(Cells(I, 5)) <> 921900 Then

Bonjour,

essaie ainsi

ElseIf Cells(I, 5).Value Like "921*" And Cells(I, 5) <> "921900" Then

C'est bon ça marche, SUPER , merci beaucoup, ça va me faire gagner pas mal de temps

Merci encore, par contre, c'est une macro assez longue en sachant que sur 100 000 lignes, 1 000 seront supprimées au maximum. Il n'y a pas de moyens pour que cela soit plus rapide ?

Bonsoir Camille65, le forum

Tu introduis cette formule dans la première colonne de ton tableau via une macro :

=SI(OU(GAUCHE(E2;3)="9NP";GAUCHE(E2;3)="701";SI(ET(GAUCHE(E2;3)="921");E2<>921900));1;"")

Ensuite la méthode SpecialCells te permettra de supprimer les lignes entières concernées.

Edit : je ne suis pas très doué en formule, donc à vérifier les conditions.

A tester

Sub Supprime()
    Application.ScreenUpdating = False
    Columns(1).Insert
    With Range("b2", Range("b" & Rows.Count).End(xlUp)).Offset(, -1)
        .Formula = "=IF(OR(LEFT(E2,3)=""9NP"",LEFT(E2,3)=""701"",IF(AND(LEFT(E2,3)=""921""),E2<>921900)),1,"""")"
        .Value = .Value
        On Error Resume Next
        .SpecialCells(2, 1).EntireRow.Delete
        On Error GoTo 0
    End With
    Columns(1).Delete
    Application.ScreenUpdating = True
End Sub

klin89

Ok merci beaucoup pour tout

Rechercher des sujets similaires à "supprimer lignes commencant sauf"