Excel:suppr tte lignes contenant un mot

Fermé
KIm - 28 mai 2008 à 10:19
chtilou Messages postés 1664 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 30 avril 2012 - 13 juin 2008 à 20:59
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
A voir également:

11 réponses

Remad Messages postés 1662 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 27 juillet 2012 680
28 mai 2008 à 10:20
Pas besoin de poster plusieurs fois !
0
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
je m'excuse mais je me suis rendu compte que j'avais posté dans la mauvaise section , d'ou le double post
0
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
chtilou Messages postés 1664 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 30 avril 2012 522 > KIm
28 mai 2008 à 11:37
Bonjour,
Est ce que le nombre de caractères avant la virgule est fixe?
0
Kim > chtilou Messages postés 1664 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 30 avril 2012
28 mai 2008 à 12:11
non il varie selon les lignes
0
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
chtilou Messages postés 1664 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 30 avril 2012 522
28 mai 2008 à 13:13
Re,

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


#VALEUR
0
edit : Ca fonctionne pour la premiere partie entre virgule !

par contre les autres #VALEUR! , erreur de formule

merci pour ton aide
0
chtilou Messages postés 1664 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 30 avril 2012 522 > kim
28 mai 2008 à 13:55
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
kim > chtilou Messages postés 1664 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 30 avril 2012
28 mai 2008 à 14:01
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chtilou Messages postés 1664 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 30 avril 2012 522
28 mai 2008 à 14:35
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
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
=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
(&q­­uot
0
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
chtiloup , tu vois ou se trouve le probleme stp ?
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
28 mai 2008 à 20:12
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
chtilou Messages postés 1664 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 30 avril 2012 522
28 mai 2008 à 20:28
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
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
28 mai 2008 à 20:35
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
chtilou Messages postés 1664 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 30 avril 2012 522
28 mai 2008 à 20:39
Mdrrrrrrrr,

en fait j'ai rien de plus.
Pour tester je fait du copier copier/coller des textes en conditions. ;-(
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
28 mai 2008 à 20:42
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
chtilou Messages postés 1664 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 30 avril 2012 522
28 mai 2008 à 20:51
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
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
28 mai 2008 à 21:38
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
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
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
chtilou Messages postés 1664 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 30 avril 2012 522 > kim
30 mai 2008 à 09:21
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
kim > chtilou Messages postés 1664 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 30 avril 2012
30 mai 2008 à 09:35
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
chtilou Messages postés 1664 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 30 avril 2012 522 > kim
30 mai 2008 à 10:22
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
kim > chtilou Messages postés 1664 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 30 avril 2012
30 mai 2008 à 10:41
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
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
chtilou Messages postés 1664 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 30 avril 2012 522
13 juin 2008 à 20:59
0