Excel:suppr tte lignes contenant un mot

KIm -  
chtilou Messages postés 1704 Statut Membre -
Bonjour,

je dois faire un trie organisé d'un fichier excel , je dois suivre plusieur étape , (excel 2007):
(précision le fichier excel est trés volumineux , des centaines de milliers de lignes ...)

- premierement , je dois supprimer toute les lignes contenant le mot "?unknown"
- ensuite je dois remplacer un bout de phrase par une autre pour une multitude de ligne
-enfin je voudrais savoir :

je ne peux pas être précis sur la nature du document il est confidentiel , mais en résumé il s'agie de succession de ligne contenant chacune des données séparé par une virgule.
Je voudrais savoir s'il était possible que , pour chaque ligne , a chaque virgule , excell créer une collonne pour ces données.
Ce qui donnerai :

xxxxxxxxxxxx, yyyyyyy, zzzzzzz, ooooooo

xxxxxxxxxxx yyyyyyyyy zzzzzzzzzz ooooooooo

Merci d'avance pour votre aide
Configuration: Windows XP
Firefox 2.0.0.14

11 réponses

Résumé de la discussion

Organisation d'un fichier Excel 2007 volumineux, avec suppression des lignes contenant ?unknown, le remplacement d’un fragment de texte sur de nombreuses lignes et séparation des données par virgules en colonnes. Plusieurs répondants recommandent d'utiliser la fonctionnalité Texte en colonnes pour éclater chaque valeur séparée par des virgules, puis des macros ou formules pour automatiser remplacement et suppression des lignes. D'autres échanges soulignent que la séparation par virgule peut nécessiter des ajustements liés aux espaces et aux caractères spéciaux, et préconisent de tester sur un échantillon avant d'appliquer les modifications. En cas de très gros volumes, certains proposent d'effectuer la manipulation en plusieurs passes ou d'utiliser des outils complémentaires pour éviter les ralentissements et garantir l'intégrité des données après chaque étape.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. Remad Messages postés 1694 Statut Membre 720
     
    Pas besoin de poster plusieurs fois !
    0
  2. KIm
     
    pour la séparation au moment de la virgule , cela a mal était présenté dans mon post , le but est de vraiment séparer chaque donné aprés la virgule

    Donnée1 Donnée2 Donnée3
    Donnée1 Donnée2 ...........
    Donnée1 .............
    Donnée1
    Donnée1
    Donnée1
    Donnée1
    Donnée1
    Donnée1
    Donnée1
    Donnée1
    Donnée1
    0
  3. KIm
     
    je m'excuse mais je me suis rendu compte que j'avais posté dans la mauvaise section , d'ou le double post
    0
    1. KIm
       
      edit :

      je me suis mal exprimé concernant la séparation des lignes

      en faite mes lignes contiennent des données séparées par une virgules et je voudrais stocké chaque donné dans une collone

      donnée1, donnée2, donnée3, donnée4

      A1 D1 etc


      Donnée1 Donnée2
      Donnée1 Donnée2
      ....
      0
      1. chtilou Messages postés 1704 Statut Membre 523 > KIm
         
        Bonjour,
        Est ce que le nombre de caractères avant la virgule est fixe?
        0
      2. Kim > chtilou Messages postés 1704 Statut Membre
         
        non il varie selon les lignes
        0
      3. Kim > Kim
         
        pour être plus précis , les lignes sont de ce type
        (en une seul cellule toujours)


        C:\\...\...\, (detail), (detail), (detail)

        et je voudrais donc que pour chaque donné avant virgule , il les stock dans une collone .

        C:\\....\.. dans la premiere collone
        (detail) dans la deuxieme etc..
        0
  4. chtilou Messages postés 1704 Statut Membre 523
     
    Re,

    regarde si ceci te convient.
    0
    1. kim
       
      Oui c'est exactement ce que je voudrais.
      0
    2. kim > kim
       
      j'ai essayer de mettre tes formules et j'obtient le message suivant :


      #VALEUR
      0
    3. kim > kim
       
      edit : Ca fonctionne pour la premiere partie entre virgule !

      par contre les autres #VALEUR! , erreur de formule

      merci pour ton aide
      0
    4. chtilou Messages postés 1704 Statut Membre 523 > kim
       
      j'ai essayer de mettre tes formules et j'obtient le message suivant : #VALEUR

      C'est très vague...

      j'ai essayer de mettre tes formules
      Ou et comment?

      Si besoin envoie ton fichier par ici.
      0
    5. kim > chtilou Messages postés 1704 Statut Membre
       
      Toutes les lignes sont de la forme suivante :

      (localisation), (nom), (detail)

      ce que tu m'a donné fonctionne pour la premiere colonne , c'est a dire que lorsque je remplace ce que tu as mis dans la 1ere colonne par ma ligne , j'obtient bien dans la 1ere colonne le contenu (localisation) par contre , dans les deux autres
      j'ai des erreurs et n'ont pas le reste du contenu entre virgule de la ligne

      j'espere avoir été un peu plus clair , merci pour ton aide
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. chtilou Messages postés 1704 Statut Membre 523
     
    Donc:
    C:\DATA\POW\GROUPES\Man\Assembly\Sébastien\2008\Documentations techniques L54-1\Papiers L54-1\,EUR\FRSTR-POW_RO ,R X R X <> aussi

    en effet il n'y a pas d'espace entre la virgule et le 2éme argument. ;-(

    \,EUR <> \, EUR

    =DROITE(GAUCHE($A$1;TROUVE(",";$A$1;NBCAR(B$1)+2)-1);NBCAR(GAUCHE($A$1;TROUVE(",";$A$1;NBCAR(B$1)+2)-1))-NBCAR(B1)-1)
    0
    1. kim
       
      oui il n'y a pas d'espace entre le 1er et le second

      j'ai taper ta ligne a la place de la précédente dans : C1

      j'obtient une erreur :(
      0
    2. kim > kim
       
      =DROITE(GAUCHE($A$1;TROUVE(",";$A$1;NBCAR(B$1)+2)-1);NBCAR(GAUCHE($A$1;TROUVE(&q­uot;,";$A$1;NBCAR(B$1)+2)-1))-NBCAR(B1)-1)

      l'erreur se situe au niveau de " apparement
      0
    3. kim > kim
       
      (&q­­uot
      0
    4. kim > kim
       
      Excuse moi pour les erreurs dans ma demande , c'est vrai qu'en informatique aucun détail ne dois etre négliger.

      Apres plusieurs vérifications voici le modele correct donc :

      aaaa,bbbb ,cccc

      donc pas d'espace entre le 1er et le second argument

      PROBLEME ACTUEL :

      il manque la premiere lettre du second argument
      0
    5. kim > kim
       
      chtiloup , tu vois ou se trouve le probleme stp ?
      0
  7. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonsoir,

    Sinon pour redistribuer des données comme ça il y a le menu 'données / convertir...', type de fichier 'délimité' où l'on indique le séparateur et excel répartit sur plusieurs colonnes.

    eric
    0
    1. chtilou Messages postés 1704 Statut Membre 523
       
      Salut Eric.

      J'avais pensé à une macro du genre ci dessous, elle fonctionne très bien sauf que à la fin j'ai droit à "incompatibilité de type".

      J'ai posté en programmation mais sans succès pour l'instant.

      Je crois savoir que tu touches ta bille de ce coté là (aussi) donc si tu veux y regarder ;-)

      Sub ModifColonnes()

      Dim a As Long
      Dim b As Long
      Dim c As Long


      a = Range("C65536").End(xlUp).Row

      For b = a To 1 Step -1

      If Cells(b, 3).Value = "C:\DATA\POW\GROUPES\" Then

      Cells(b, 3).Value = "S:\Intern"


      End If

      Next b

      c = Range("B65536").End(xlUp).Row

      For b = c To 1 Step -1

      If Cells(b, 2).Value = "?unknown" Then

      Rows(b).Select
      Selection.Delete Shift:=xlUp

      End If

      Next b

      End Sub
      0
  8. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    rhoooo, tu me deçois là !!! ;-)
    même pas un fichier joint en exemple pour qu'on n'ait pas besoin de le construire...
    0
    1. chtilou Messages postés 1704 Statut Membre 523
       
      Mdrrrrrrrr,

      en fait j'ai rien de plus.
      Pour tester je fait du copier copier/coller des textes en conditions. ;-(
      0
  9. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Je n'ai pas d'erreur...
    Sûrement dans des conditions particulières.
    Sinon tu peux raccourcir
    Rows(b).Select
    Selection.Delete Shift:=xlUp
    en
    Rows(b).Delete Shift:=xlUp

    eric
    0
    1. chtilou Messages postés 1704 Statut Membre 523
       
      Oupsssssss,

      effectivement je viens de la recopier dans un nouveau classeur et c'est OK.
      J'ai souvent une session Excel ouverte et je bidouille pour trouver ou vérifier des formules et des macros.
      Certainement rapport à ça.

      En tout cas merci pour le raccourci. ;-)

      Amicalement.
      0
  10. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    tout va bien alors.. :-)
    Je rappelle à kim le post 34 (un peu noyé maintenant) qui peut l'interesser
    Bonne soirée tout le monde
    0
  11. kim
     
    bonjour à tous , j'ai un nouveau problème avec les formule qu'on ma donné .
    c'est a dire :

    =GAUCHE(A3;TROUVE(",";A3;1)-1)

    =DROITE(GAUCHE($A$3;TROUVE(",";$A$3;NBCAR(B$3)+2)-1);NBCAR(GAUCHE($A$3;TROUVE(",";$A$3;NBCAR(B$3)+2)-1))-NBCAR(B3)-1)

    =DROITE(A3;NBCAR(A3)-NBCAR(GAUCHE($A$3;TROUVE(",";$A$3;NBCAR(B$3)+2))))

    Mon but est de créer un fichier excel permettant de stocker dans plusieur colonne , des lignes qui ne sont que sur une seul.Il faut que tout cela soit trés simple pour l'utilisateur , il copie sa ligne dans la cellule A1 , et automatiquement , sur la meme ligne , la ligne est séparé en 3 colonnes

    les lignes sont tjs du même type , a savoir : C:\Data\etc,usersname(ici en fonction des lignes , il a plus ou moins beaucoup d'espace avant la prochaine virgule) ,detail

    pour les formules que ma donné chtiloup , elle fonctionne parfaitement pour la premiere ligne .
    Cependant , en "étirant la formule" pour l'aplliquer sur plusieurs lignes , je rencontre des problemes :
    Pour la seconde ligne , la premier colonne est correct , j'obtient bien le premier mot , ensuite ca devient faux , la deuxieme colonne contient le second mot de la premiere ligne , quant a la dernier colonne est ne contient rien.

    Dois-je m'y prendre autrement pour faire glisser la formule a tout le document ?
    0
    1. kim
       
      je vous rajoute les formules de la deuxieme ligne , obtenu en fesant glisser la premiere.

      =GAUCHE(A4;TROUVE(",";A4;1)-1)

      =DROITE(GAUCHE($A$3;TROUVE(",";$A$3;NBCAR(B$3)+2)-1);NBCAR(GAUCHE($A$3;TROUVE(",";$A$3;NBCAR(B$3)+2)-1))-NBCAR(B4)-1)

      =DROITE(A4;NBCAR(A4)-NBCAR(GAUCHE($A$3;TROUVE(",";$A$3;NBCAR(B$3)+2))))

      je rapel le structure des lignes tjs la meme :

      C:\\DATA\etc,username(bcp d'espace) ,detail

      Bonne journée
      0
    2. chtilou Messages postés 1704 Statut Membre 523 > kim
       
      Salut Kim,

      Supprime les "$" dans les formules 2 et 3. ;-)

      PS:
      Eric te fait remarqué sur le post 34, une fonctionnalité d' Excel que je ne savais pas présente sur Excel 2003.
      As tu regardé si cette fonction peut en une seule manip résoudre ton problème?

      A ton écoute.
      0
    3. kim > chtilou Messages postés 1704 Statut Membre
       
      Bonjour chtiloup ,

      En effet la manip permet de faire le trie en 2 clique mais comment automatisé cette manip.
      il faudrait qu'un utilisateur n'ai qu'a copier ses lignes dans la premiere colonne , ensuite le trie dois se faire auto
      0
    4. chtilou Messages postés 1704 Statut Membre 523 > kim
       
      En enregistrant une macro.
      Une fois la macro enregistrée tu l'associe à un bouton.
      Dés que l'utilisateur à terminé la copie de ses lignes il appui sur le bouton mise à jour et oupsssssss.

      (fait coucou à Eric. :-|)

      Ensuite regarde ici. ;-)
      0
    5. kim > chtilou Messages postés 1704 Statut Membre
       
      merci bcp chtiloup ,

      tu pourrais me faire le meme genre de Bouton pour une macro sui remplacerai "(texte)" par "(autre texte)"
      dans la meme macro un autre remplacement d'un texte différent "(texte)" par "(autre texte)"
      et qui suprimer tout les lignes ou il y a le mot ?unknown

      merci bcp pour ton aide
      0
  12. kimo
     
    Bonjour à tous ,

    j'ai besoin de votre aide pour automatiser quelques procédure excel .
    d'avance , merci pour toute aide

    Tout d'abbord mon document est de la façon suivante :

    Il contient 3 colonnes (A, B et C) .
    Chaque lignes est comme ceci : (ACCES) dans la colonne A , (UTILISATEUR) dans la colonne B et (DETAIL) dans la colonne C.

    Il me faudrait des maccros pour faires les choses suivante :

    - je souhaite définir sur une ligne , un ensemble de mot pour lesquels :
    A chaques fois que ces mots sont trouvés , il faudra supprimer les lignes entieres.

    - je souhaite définir une autre ligne pour laquel , a chaque fois que le mot défini est trouvé , il faudra uniquement supprimer ce mot.

    - j'ai également des remplacements de bout de phrase a faire :
    je souhaite définir sur une ligne , un ensemble de bout de phrase qui seront remplacé par d'autre
    exemple dans A1 je met le texte a recherché et dans A2 le texte qui va le remplacé
    et ainsi de suite , le tout en une macro.

    - et derniere chose , je voudrais définir un texte sur une ligne pour lequel , si une ligne ne contient pas exactement ce texte , elle est supprimé mais uniquement les lignes contenant tout de meme ce texte , exemple :

    UN CHAT
    UN CHAT NOIR
    UN CHAT NOIR ET GRIS
    UN CHIEN
    UN CHEVAL

    dans ma ligne , je définit le texte : "UN CHAT"
    donc seront suprimé les lignes UN CHAT NOIR ET UN CHAT GRIS car elle contienne certe le mot UN CHAT mais il y a d'autre mot ...

    j'espere que vous aurez compris mon idée , c'est assez difficile d'être clair , merci a tous !
    0