Comment supprimer des lignes selon une valeur donnée?

JulieD44 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
 JulieD44 -
Bonjour à tous,

Je dois mettre en place une base de donnée sur Excel que je pourrais rapidement mettre à jour suite à l'extraction de données d'un autre logiciel.

Cependant, mon extraction me donne des données qui ne me sont pas toutes utiles.
J'aurais donc besoin de supprimer les informations qui ne me servent pas et qui représentent beaucoup de lignes (sachant qu'il y a environ 28000 lignes).

Mon critère de sélection est le suivant : garder les données qui ont été enregistrées par trois personnes

Exemple :
A B
1 Julie
5 Clément
5 Marie
4 Laurent
7 Marie
5 Marie
7 Pierre

Je ne souhaite garder QUE les lignes de Julie, Clément et Laurent.

J'ai déjà vu ce genre de question posée sur les forum et la réponse était de supprimer toutes les lignes ou il n'y avait pas Julie, Laurent ou Clément.
Cependant, j'ai trop de noms différents pour pouvoir faire ça (plus de 400).

J'aimerais trouver un code qui prendrait comme critère de tout supprimer SAUF les lignes où on trouve Julie, Laurent et Clément.

Auriez-vous une idée à me proposer ?
Je suis novice en code et j'ai cherché avant de venir poser la question sur le forum. J'ai besoin d'aide svp.

Merci !!
A voir également:

4 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour,

Oui c'est possible:

Il faudrait que dans un coin de ton classeur, tu fasses un tableau des personnes autorisées

Combien de lignes as tu (colonnes A B) ?
0
JulieD44 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai 27498 lignes pour être exacte
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
je serai absent cet aprem donc sois patiente ;o)
0
JulieD44 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai essayé ce code :

Sub SupprimerLignes()
With Worksheets("Test")
For R = .Cells(.Rows.Count, 3).End(xlUp).Row To 1 Step -1
If .Cells(R, 3) > "" And (.Cells(R, 3) <> "Julie" And .Cells(R, 3) <> "Clément" And .Cells(R, 4) <> "Laurent") And .Cells(R, 3) <> "Titre de ma colonne"Then .Cells(R, 4).EntireRow.Delete
Next
End With
End Sub


Cela marche lorsque je n'ai pas beaucoup de lignes.
Par contre, ça fait planter Excel lorsque je teste sur mes 27498 lignes...
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour,

J'essaie de te proposer un truc dès que j'ai un moment, excuse moi

Combien as tu de colonnes , A à C ou ..... ?

Edit:
Ou plutôt envoie un extrait de ton classeur (1000 à 2000 lignes) et non un exemple ressemblant car vu le nombre de données et le fait qu'excel se plante, il me faut bien situé le pb....

pour joindre une pièce
mettre le classeur sans données confidentielles en pièce jointe sur
http://cjoint.com/
puis copier l'adresse du lien et la coller dans le message de réponse
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour

en attendant le fichier

maquette pour le principe de travail( style requete Access ADO-SQL): on peut sélectionner jusqu'à 5 personnes
4 colonnes,2000 lignes
Extraction 5 personnes en 0,6 sec (vieux coucou win xp, 512 Mo ram)
https://www.cjoint.com/c/DGgmFh2y6BC
0
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
MERCI
...
DE RIEN !
0
JulieD44
 
Bonjour Michel,

Je suis vraiment dsl de ne pas avoir répondu plus tôt... je n'ai pas eu accès à internet pendant 10 jours (voyage). Je voulais vous remercier d'avoir pris le temps de m'aider.

Finalement, j'ai retenté le code que je vous avais écrit et il fonctionne. Il faut juste laisser excel travailler quelques minutes. Je vais me contenter de cela.

Encore dsl et bonne continuation.
0