Supprimer une ligne contenant un caractère unique

Bonjour à tous,

Je dispose d'une liste de caractères :

a

aa

b

bb

c

cdef

et cherche à supprimer les lignes contenant des caractères uniques : a, b ou c pour n'obtenir plus que :

aa

bb

cdef

J'utilise la macro suivante

Sub SuppBIO()

Dim I As Integer

For I = [A65000].End(xlUp).Row To 1 Step -1

If Not Cells(I, 1).Resize(1, 6).Find("a") Is Nothing Or _

Not Cells(I, 1).Resize(1, 6).Find("b") Is Nothing Or _

Not Cells(I, 1).Resize(1, 6).Find("c") Is Nothing Then Rows(I).Delete

Next I

End Sub

Malheureusement, cela me supprime également les lignes qui contiennent ces caractères, au lieu des lignes contenant SEULEMENT ce caractère.

Auriez-vous une solution ?

Merci par avance !

Bonjour Yek, le forum,

A tester:

Sub SuppBIO()

Dim I As Integer
Dim Longueur As Integer

For I = [A65000].End(xlUp).Row To 1 Step -1
        Lg = Len(ActiveSheet.Cells(I, 1).Value)       'compte le nombre de caractères

        If Lg = 1 Then                                        'si 1 caractère alors

If Not Cells(I, 1).Resize(1, 6).Find("a") Is Nothing Or _
Not Cells(I, 1).Resize(1, 6).Find("b") Is Nothing Or _
Not Cells(I, 1).Resize(1, 6).Find("c") Is Nothing Then Rows(I).Delete
        End If

Next I

End Sub

Cordialement,

Bonjour,

Essaie simplement :

If len(Cells(i,1))=1 then
xorsankukai a écrit :

Bonjour Yek, le forum,

A tester:

Sub SuppBIO()

Dim I As Integer
Dim Longueur As Integer

For I = [A65000].End(xlUp).Row To 1 Step -1
        Lg = Len(ActiveSheet.Cells(I, 1).Value)       'compte le nombre de caractères

        If Lg = 1 Then                                        'si 1 caractère alors

If Not Cells(I, 1).Resize(1, 6).Find("a") Is Nothing Or _
Not Cells(I, 1).Resize(1, 6).Find("b") Is Nothing Or _
Not Cells(I, 1).Resize(1, 6).Find("c") Is Nothing Then Rows(I).Delete
        End If

Next I

End Sub

Cordialement,

Bonjour,

Merci pour ta réponse. Malheureusement, aucun résultat.


Jean-Eric a écrit :

Bonjour,

Essaie simplement :

If len(Cells(i,1))=1 then

Hello. Merci pour ta réponse.

Où intégrer cela dans la macro ? J'obtiens un Next sans For donc je dois me planter...

Bonjour,

Une piste : ( à parametrer pour la feuille concernée)

Sub sup()
Dim i As Integer
For i = [A65000].End(xlUp).Row To 1 Step -1
                      If Cells(i, 1) = "a" Or Cells(i, 1) = "b" Or Cells(i, 1) = "c" Then
                      Rows(i).Delete
                      End If
Next i
End Sub

Re,

Merci pour ta réponse. Malheureusement, aucun résultat.

Fonctionne pourtant chez moi

Cordialement,

Merci à tous pour votre aide !

Finalement le problème est plus grave que ce que je pensais : je rencontre aussi le problème avec des chaines de caractère...

Par exemple si je demande à supprimer "une", il va aussi supprimer les lignes contenant "chacune"

Ne peut-on pas faire une recherche stricte ?

Re,

Un essai :

Crdlt,

xorsankukai a écrit :

Re,

Un essai :

Crdlt,

Excellent, ça semble efficace !

Cela étant dit, est-il possible d'insérer en amont la liste des mots / caractères qui doivent entrainer la suppression plutôt qu'au cas par cas ?

Re,

Un autre version (macro2) avec 3 critères prédéfinis (aa,bb,cc) :

Sub Effacer()

     Dim I As Integer

           With Sheets("Feuil1")

           Application.ScreenUpdating = False

           For I = [A65000].End(xlUp).Row To 1 Step -1

           If Cells(I, 1).Value = "aa" Or Cells(I, 1).Value = "bb" Or Cells(I, 1).Value = "cc" Then
              Rows(I).Delete
           End If
           Next I

           End With
End Sub

Crdlt,

Rechercher des sujets similaires à "supprimer ligne contenant caractere unique"