Supprimer ligne particulière

Résolu/Fermé
dikold Messages postés 22 Date d'inscription mardi 19 mai 2015 Statut Membre Dernière intervention 14 novembre 2016 - Modifié par dikold le 10/06/2015 à 12:16
dikold Messages postés 22 Date d'inscription mardi 19 mai 2015 Statut Membre Dernière intervention 14 novembre 2016 - 10 juin 2015 à 15:57
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 38310 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705
10 juin 2015 à 12:15
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 mardi 19 mai 2015 Statut Membre Dernière intervention 14 novembre 2016 1
10 juin 2015 à 13:41
Merci de ta réponse mais ça ne marche pas :

Erreur d'execution '424' à la ligne c.EntireRow.Delete
0
jordane45 Messages postés 38310 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 novembre 2024 4 705 > dikold Messages postés 22 Date d'inscription mardi 19 mai 2015 Statut Membre Dernière intervention 14 novembre 2016
10 juin 2015 à 15:03
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 mardi 19 mai 2015 Statut Membre Dernière intervention 14 novembre 2016 1
10 juin 2015 à 15:57
Super, ca marche merci :)
0