Supprimer ligne particulière

Résolu
dikold Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   -  
dikold Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je voudrais que mon code supprime les lignes où les cellules en colonne A ne commence pas par des lettres précises. Mais ce ne marche pas :

Dim c As Range

Lastrow = Cells(Rows.Count, "A").End(xlUp).Row

For Each c In Range("A2:A" & Lastrow)
    If Not (c.Value Like "CO*" Or c.Value Like "EN*" Or c.Value Like "J*" Or c.Value Like "PI*" Or c.Value Like "SO*") Then
        c.EntireRow.Delete
    End If
Next


Merci d'avance de votre aide.

A voir également:

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,
Lorsqu'on fait des suppressions de lignes en vba (dans une boucle).. il est préférable de commencer par le bas du tableau (car lorsqu'on supprime une ligne.. toutes les lignes en dessous remontent.. et donc.. ta boucle n'est plus valable...)

Essayes comme ceci :
Dim valCell as Variant
Lastrow = Cells(Rows.Count, "A").End(xlUp).Row

For l = Lastrow to 2 step -1
 valCell  = range("A" & l).value
    If Not (valCell Like "CO*" Or valCell Like "EN*" Or valCell Like "J*" Or valCell Like "PI*" Or valCell Like "SO*") Then
        c.EntireRow.Delete
    End If
Next


1
dikold Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   1
 
Merci de ta réponse mais ça ne marche pas :

Erreur d'execution '424' à la ligne c.EntireRow.Delete
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > dikold Messages postés 22 Date d'inscription   Statut Membre Dernière intervention  
 
oups .. petit oubli de ma part désolé.
Dim valCell as Variant
Lastrow = Cells(Rows.Count, "A").End(xlUp).Row

For l = Lastrow to 2 step -1
 valCell  = range("A" & l).value
    If Not (valCell Like "CO*" Or valCell Like "EN*" Or valCell Like "J*" Or valCell Like "PI*" Or valCell Like "SO*") Then
       rows(l).Delete
    End If
Next
0
dikold Messages postés 22 Date d'inscription   Statut Membre Dernière intervention   1
 
Super, ca marche merci :)
0