Conserver une modalité selon critère VBA

Résolu
Lils_Bis Messages postés 65 Statut Membre -  
Lils_Bis Messages postés 65 Statut Membre -
Bonjour à tou(te)s !
Voilà, depuis quelques temps j'ai un problème que je retourne dans tous les sens mais rien n'y fait, je ne trouve pas la solution.
Je vous le présente donc :
J'ai une colonne, avec en première ligne "Lettre"
Au sein de celle-ci, j'ai
A
B
C
C
B
A
A

Mon problème est que grâce à VBA je ne voudrais garder QUE les lignes où "A" est présent dans la colonne "Lettre". Et ce de manière automatisé (en évitant l'enregistreur de Macro).
Dans l'idéal en français, mon idéal ^^ serait de dire que :
Dès que je vois "A" je garde les lignes sinon je les supprime.

Voilà, si quelqu'un avait cela sous le coude, ça me serait d'une aide précieuse !
Merci d'avance à tous, je vous souhaite une bonne journée !

2 réponses

  1. melanie1324 Messages postés 1561 Statut Membre 156
     
    bonjour,

    voici la macro :

    sub suppression ()

    ' on commence à la ligne 1
    i= 1

    'on va balayer la colonne 1 jusqu'à qu'une cellule soit vide
    do while sheets("sheet1").cells(i,1) <> ""

    if cells(i,1) <> "A" then
    sheets("sheet1").Delete Shift:=xlUp
    i=i-1
    end if
    i=i+1
    loop

    end sub
    0
    1. Lils_Bis Messages postés 65 Statut Membre
       
      Bonjour Mélanie,
      Merci pour ta solution, je viens de la tester à l'instant et j'ai un petit problème. J'ai bien essayé de bidouiller quelque peu mais rien à faire!
      C'est cette ligne qui me pose problème :
      sheets("sheet1").Delete Shift:=xlUp
      En effet, quand j'exécute, l'erreur d'exécution '1004' apparaît, à savoir "Erreur définie par l'application ou par l'objet".
      Si tu savais d'où pouvait provenir le problème, cela me serait d'une grande aide !
      Merci à toi par avance !
      0
  2. Lils_Bis Messages postés 65 Statut Membre
     
    J'ai trouvé une solution, je la poste ici !
    Dim Derlig As Long, b As Long
    With ActiveWorkbook.Worksheets("Feuil1")
    Derlig = .Range("A2").End(xlDown).Row
    For b = Derlig To 2 Step -1
    If .Range("D" & b).Value <> "A" Then
    .Range("D" & b).EntireRow.Delete
    End If
    Next b
    End With
    0