Garder des lignes spécifiques dans un fichier excel (csv)

Signaler
Messages postés
61
Date d'inscription
mardi 4 mai 2004
Statut
Membre
Dernière intervention
1 août 2007
-
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
Bonjour,

J'ai un de nombreux fichiers .csv se présentant de la manière suivante (toutes les données contenues sont différentes pour chaque fichier) :

                  Colonne 1      Colonne 2       Colonne 3 ...  
Ligne 0         XXX1            XXX2             XXX3   ...
Ligne 1         Nom 1            Nom 2            Nom 3   ...
Ligne 2         Nom 4            Nom 5            Nom 3   ...
Ligne 3         Nom 6            Nom 2            Nom 7   ...
Ligne 4         Nom 8            Nom 5            Nom 7   ...
Ligne 5         Nom 9            Nom 2            Nom 10 ...
Ligne 6         Nom 11          Nom 2            Nom 12 ...
Ligne 7         Nom 14          Nom 5            Nom 12 ...
......

Comme vous pouvez le constater, les lignes marchent par paire ou presque ([1,2] ; [3,4] ; [5] ; [6 ; 7]).
J'aimerais à la base garder uniquement les lignes où il y a le Nom 5.
Le soucis, c'est que parfois il risque d'avoir des lignes où il n'y a que Nom 2. Dans ce cas j'aimerais les garder quand même.
Je pense que la colonne 3 peut y aider (marche par paire aussi).
Comment je pourrais procéder ?

Au final donc, après traitement, le fichier devra garder les lignes suivantes (sans espace entre elles) :

                  Colonne 1      Colonne 2       Colonne 3 ...  
Ligne 0         XXX1            XXX2             XXX3   ...
Ligne 2         Nom 4            Nom 5            Nom 3   ...
Ligne 4         Nom 8            Nom 5            Nom 7   ...
Ligne 5         Nom 9            Nom 2            Nom 10 ...
Ligne 7         Nom 14          Nom 5            Nom 12 ...
......

Merci beaucoup pour votre aide.
   

3 réponses

Messages postés
443
Date d'inscription
mardi 27 mars 2007
Statut
Membre
Dernière intervention
1 mars 2011
2
Bonjour,
J'ai quand même relu 4 fois avant de me dire que j'avais peut être compris quelque chose !!!
Finalement si tu ne veux garder que celles qui contiennent Nom 5 mais que si certaines ne contiennent pas Nom 5 mais contiennent Nom 2 tu veux les garder aussi, on peut conclure que tu veux garder celles qui contiennent Nom 5 OU Nom 2  OU les deux
   Mais que fera-t-ion de celles qui ne contiennent ni l'un ni l'autre

Boucle sur les lignes
   Boucle sur les colonnes
       qui vérifie la présence de Nom 5 OU Nom 2 
       qui supprime l'indésirable

JML
 Partageons notre savoir et nos acquis
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Moi non plus, je ne suis vraiment pas certain de comprendre...

Je bouclerais à partir de la fin, en lisant la colonne 3

si la cellule précédente = cellule présente, delete la ligne précédente, peu importe ce qu'Il y a en colonne 2 ou 1 (pas certain pour ce bout...)

For i = nbLignes to 2 step -1
    If Range("C" & i) - Range("C" & i - 1) then
       Rows(i - 1).Delete
    end if
Next

MPi
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
En fait, dans le résultat que tu as mis, la colonne 1 ne suit pas la suppression des lignes, alors, soit tu as mal copié le résultat, soit j'ai rien compris...

MPi