Comment supprimer des lignes selon une valeur donnée?

JulieD44 Messages postés 3 Statut Membre -  
 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 !!

4 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  2. JulieD44 Messages postés 3 Statut Membre
     
    J'ai 27498 lignes pour être exacte
    0
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    je serai absent cet aprem donc sois patiente ;o)
    0
    1. JulieD44 Messages postés 3 Statut Membre
       
      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
    2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      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
  4. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      MERCI
      ...
      DE RIEN !
      0
    2. 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