Conserver une modalité selon critère VBA

Résolu/Fermé
Lils_Bis Messages postés 57 Date d'inscription lundi 4 avril 2016 Statut Membre Dernière intervention 28 décembre 2020 - 18 avril 2016 à 12:10
Lils_Bis Messages postés 57 Date d'inscription lundi 4 avril 2016 Statut Membre Dernière intervention 28 décembre 2020 - 18 avril 2016 à 14:16
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

melanie1324 Messages postés 1504 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
18 avril 2016 à 13:40
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
Lils_Bis Messages postés 57 Date d'inscription lundi 4 avril 2016 Statut Membre Dernière intervention 28 décembre 2020
18 avril 2016 à 13:52
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
Lils_Bis Messages postés 57 Date d'inscription lundi 4 avril 2016 Statut Membre Dernière intervention 28 décembre 2020
Modifié par Lils_Bis le 18/04/2016 à 14:16
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