Excel:suppr tte lignes contenant un mot

[Fermé]
Signaler
-
Messages postés
1664
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
30 avril 2012
-
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

11 réponses

Messages postés
1661
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
27 juillet 2012
588
Pas besoin de poster plusieurs fois !
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
je m'excuse mais je me suis rendu compte que j'avais posté dans la mauvaise section , d'ou le double post
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
....
Messages postés
1664
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
30 avril 2012
511 > KIm
Bonjour,
Est ce que le nombre de caractères avant la virgule est fixe?
>
Messages postés
1664
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
30 avril 2012

non il varie selon les lignes
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..
Messages postés
1664
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
30 avril 2012
511
Re,

regarde si ceci te convient.
Messages postés
1664
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
30 avril 2012
511 > kim
Supprime D1 et E1 puis,
insère cette formule en D1
=DROITE(A1;NBCAR(A1)-NBCAR(GAUCHE($A$1;TROUVE(",";$A$1;NBCAR(B$1)+2)))-1)
>
Messages postés
1664
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
30 avril 2012

parfait on avance , il reste 1 probleme :

il manque une lettre dans la deuxieme collone aprés la 1ere virgule donc.
je te donne un exemple

C:\DATA\POW\GROUPES\Man\Assembly\Sébastien\2008\Documentations techniques L54-1\Papiers L54-1\,EUR\FRSTR-POW_RO ,R X R X

j'obtient :

C:\DATA\POW\GROUPES\Man\Assembly\Sébastien\2008\Documentations techniques L54-1\Papiers L54-1\
(manque le E)UR\FRSTR-POW_RO
R X R X
>
Messages postés
1664
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
30 avril 2012

merci encore pour ton aide chtilou , elle aura été précieuse :)

pourrais tu m'aider pour le dernier probleme expliquer précedemment avec la lettre manque aprés la 1ere virgule
ce qui est trés etrange c'est que , lorque je remplace ma ligne par quelque chose de simple comme :

Test, en, cours

ca fonctionne trés bien

mais avec mes lignes que je t'ai donné ci dessus , il manque la premiere lettre aprés la premiere virgule

d'ou vient le probleme ?
Messages postés
1664
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
30 avril 2012
511
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)
chtiloup , tu vois ou se trouve le probleme stp ?
surement une erreur de saisie dans ta formule :


=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)

mais je ne la trouve pas , je n'y connais rien en excel :(
Messages postés
1664
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
30 avril 2012
511
http://www.cijoint.fr/cjlink.php?file=cj200805/cijiA9lAjo.xls

impossible de transmettre la formule sans erreur. :-(
>
Messages postés
1664
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
30 avril 2012

merci beaucoup pour ton aide , ca fonctionne

il me reste deux choses a faire , les voicis :

premierement , trier la deuxieme colonne que nous avons créer et pour chaque ligne contenant le mot : ?unknown
il faudra supprimer la ligne entierement

ensuite je faire un remplacement de texte :
ca se passe dans la colonne 1
la colonne 1 correpond a des adresse de localisation de fichier
C:\DATA\POW\GROUPES\ , qu'il faut que je remplace pour chaque ligne par autre chose : une autre destination
celle ci : S:\Intern

merci pour votre aide
Messages postés
1664
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
30 avril 2012
511 > kim
utilise la fonction "RECHERCHER" C:\DATA\POW\GROUPES\ puis "REMPLACER PAR" S:\Intern
Messages postés
24147
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
2 août 2021
6 849
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
Messages postés
1664
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
30 avril 2012
511
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
Messages postés
24147
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
2 août 2021
6 849
rhoooo, tu me deçois là !!! ;-)
même pas un fichier joint en exemple pour qu'on n'ait pas besoin de le construire...
Messages postés
1664
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
30 avril 2012
511
Mdrrrrrrrr,

en fait j'ai rien de plus.
Pour tester je fait du copier copier/coller des textes en conditions. ;-(
Messages postés
24147
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
2 août 2021
6 849
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
Messages postés
1664
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
30 avril 2012
511
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.
Messages postés
24147
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
2 août 2021
6 849
tout va bien alors.. :-)
Je rappelle à kim le post 34 (un peu noyé maintenant) qui peut l'interesser
Bonne soirée tout le monde
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 ?
>
Messages postés
1664
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
30 avril 2012

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
ajout : pour la suppression il faut supprimer toutes les lignes ou il y a le mot ?unknown et aussi C:\DATA\COMMUN
> kimo
j'ai réussi a bidouillé un peu il me manque juste une macro permettant de remplacer :

E:\DATA\POW par C:\etc
et la meme macro qui remplacerai

E:\ERs\er par C:\uie

merci
Messages postés
1664
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
30 avril 2012
511 > kimo
Inspire toi du post 36. ;-)
Messages postés
1664
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
30 avril 2012
511 > kim
Post 33
premierement , trier la deuxieme colonne que nous avons créer et pour chaque ligne contenant le mot : ?unknown
il faudra supprimer la ligne entierement

ensuite je faire un remplacement de texte :
ca se passe dans la colonne 1
la colonne 1 correpond a des adresse de localisation de fichier
C:\DATA\POW\GROUPES\ , qu'il faut que je remplace pour chaque ligne par autre chose : une autre destination
celle ci : S:\Intern


+Post 46
"(texte)" par "(autre texte)"
Connais tu les variables?

+Post 47

Oupssssss

Fait nous un récapitulatif en détaillant les colonnes concernées par les modifs...
Prend ton temps et fait nous un topo assez clair. ;-)
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 !
Messages postés
1664
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
30 avril 2012
511