Effacer certains mots d'une cellules via une macro ?

Fermé
Cdrvois - 13 avril 2013 à 19:57
Scoldt Messages postés 45 Date d'inscription vendredi 9 juillet 2010 Statut Membre Dernière intervention 22 juillet 2013 - 20 avril 2013 à 16:30
Bonsoir,

Pour un projet personnel, je recherche une méthode, de mettre en avant certaines données d'un texte depuis Excel ...

Par exemple, pour un texte au hasard ;
"On ne fait pas ce qu'on veut et cependant on est responsable de ce qu'on est."

Je souhaiterai mettre en avant les mots "cependant" et "responsables", chacun dans une cellule différente.

Si je rentre la phrase entière dans une cellule, disons "A1", et que je souhaiterai voir apparaître dans les cellues C1 et D1 les deux mots ci dessus, comment devrais-je m'y prendre ?

Existe t-il une macro pouvant "supprimer" certains mots d'une cellule dans une phrase ? Supprimer par exemple "On", "ne", "fait" etc ?
Une macro pour faire apparaître seulement certains mots d'une phrase selon la position ?

J'ai trouvé la macro permettant d'effacer un certains nombre de caractère de la cellule, mais ce n'est pas exactement ce que je cherche, le texte pouvant être soumis à être "modifié".
"=DROITE(A2;NBCAR(A2)-41)"

En somme l'idéal, serait une macro pouvant faire effacer des "mots" d'une phrase et ne laissant apparaître que ceux qui m'intéresse, ceci dans des cellules différentes ..

Auriez vous une idée, cela peut-il se faire par Excel ?
A voir également:

55 réponses

ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
13 avril 2013 à 21:49
est ce que ceci commence à répondre à la question?
https://www.cjoint.com/?3DnvWv66LbG

bonne suite
1
J'ai peut être quelque chose avec la fonction "CHERCHE" mais je n'arrive pas trop à m'en servir ....
Un exemple plus concret peut être permettrait de vous indiquer ce que je cherche à obtenir, celui-ci à partir d'un "jeu" ;

Si je rentre le texte suivant ;
Aujourd'hui, en chemin, vous avez croisé INDIVIDU1, l'armée "blabla1" dirigée par INDIVIDU2, et l'armée "blabla2" dirigée par INDIVIDU3, INDIVIDU4, INDIVIDU5, INDIVIDU6, [etc etc...].


Comment faire pour obtenir dans une autre cellule (voir plusieurs, propre à chaque) les choses suivantes ;
"INDIVIDU1"
"INDIVIDU2"
etc ..
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
13 avril 2013 à 20:52
Bonjour

Je pense que pour avancer dans ton problème il faut
- soit connaitre la liste dans laquelle on a les mots à trouver
- soit connaitre la liste des mots à effacer

qu'en est il?

bonne suite
0
Et bien ..
Pour les mots à trouver, cela va être dur car ils seraient aléatoire.

Du coup la liste des mots "à enlever" seraient ;
"Aujourd'hui"
","
"en"
"chemin"
"vous"
"avez"
"croisé"
"l'armée"
"dirigée"
"par"
"et"
" "

Seriez vous capable de faire quelque chose de ça ?
Petit soucis également, le "blabla1" et "blabla2" peuvent changer et être "composés" (c'est à dire de plusieurs mots ..) une idée ?

Merci à vous en tout cas :)
0

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

Posez votre question
Juste avec une fonction "nettoie()" >_____<
EDIT : Ah euh ... ce n'est pas une fonction prédéfinie c'est ça ? Parce que le coup du Alt-F11 sur Excel je ne connaissais même pas ...

Ca commence même tout à fait à y répondre, oui ..

Du coup, deux questions ;
Pourrait-on faire afficher chaque nom sur une cellule différente ?
L'utilisation d'une macro qui effacerai automatiquement tout ce qui est contenu entre les mots "l'armée" et "par" est-elle possible ? Si oui, peut-elle se faire en même temps que les autres fonctions ?
0
Hum de plus, n'y a-t-il pas un moyen pour pouvoir ensuite sélectionner les contenus créé ?
Car avec la fonctionne actuelle, si je sélectionne le résultat pour en copier le contenu, je tombe directement sur le =nettoie() et ne peux donc pas me servir des résultats .. :/
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
14 avril 2013 à 13:58
1. Pourrait-on faire afficher chaque nom sur une cellule différente ?
oui, tu veux les mettre en ligne, en colonne?
Dans ce cas, il vaut mieux passer par une procédure plutôt qu'une fonction qui mettrait le résultat en dur dans une plage

2. L'utilisation d'une macro qui effacerai automatiquement tout ce qui est contenu entre les mots "l'armée" et "par" est-elle possible ? Si oui, peut-elle se faire en même temps que les autres fonctions ?
peut être ceci
https://www.cjoint.com/?3DonVTWOKAm

3. n'y a-t-il pas un moyen pour pouvoir ensuite sélectionner les contenus créé
Tu as le copier/collage spécial/valeurs qui pourrait convenir
Sinon,voir 1
0
Ah oui donc la on part dans de l'algorithme pur et simple et du coup je risque de pas avoir les "compétences" pour pouvoir apporter moi même des modifications ...
Une procédure plutôt qu'une fonction, c'est à dire ?
Moi qui pensait qu'Excel pouvait être à la portée de tous ... comme quoi ^^'

En somme ce que je voudrais -et c'est déjà très très bien comme vous l'avez fait et je vous en remercie énormément- ce serait ceci :

Feuille 1 : Insérer le "texte" dont on veut tirer les "individus"
-> Feuille 2 : Du coup, ce serait les "mots à enlever"
-> Feuille 1 : La liste des Individus extraite (de préférence en colonne ?)

Mais une requête encore plus pointue -bien que je me contenterai largement de la mise en colonne-, serait un moyen de mettre en relation, la liste des individus extraite, avec une liste d'individus. Et si un individu du texte extrait, se trouve par exemple dans la liste de la disons, "Feuille 3" que l'individu extrait prenne une couleur, par exemple rouge..
Et peut-être une demande, inutile forcement, il y aurait-il moyen, parmi les "Individus", d'afficher d'une certaine couleur, par exemple bleu, l"Individu" nommé juste après un "par" ?

Bien évidemment si vous ne voulez pas je pourrais tout à fait me contenter d'une mise en colonne des individus, mais comme je ne m'y connais pas vraiment en Algo je vous avouerai que cela m'aiderai assez .. :/

En vous remerciant par avance
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
Modifié par ccm81 le 14/04/2013 à 15:06
1. tu ne me dis pas si la dernière version fonctionne comme tu veux (à l'affichage près), c'est la première chose à vérifier puisque à partir du résultat fourni par la fonction nettoie, on peut en faire à peu près ce qu'on veut.

2. Ah oui donc la on part dans de l'algorithme pur et simple
Ben, on y est déjà !!!

Une fonction est une procédure qui, à partir de une ou plusieurs données, renvoie un résultat unique
Exemple la fonction nettoie renvoie à partir de la valeur d'une cellule, la valeur "nettoyée"
C'est ce que font les fonctions excel disponibles dans la feuille de calcul
On peut ajouter à excel, via VBA, des fonctions personnelles, comme nettoie, qui s'utiliseront dans la feuille comme une fonction excel, ou dans une procédure personnelle

Une procédure est un outil destiné à réaliser une tâche donnée.
Exemple à partir de la valeur d'une cellule, elle distribue dans une colonne les morceaux de la valeur nettoyée (valeur par ailleurs calculée avec la fonction nettoie!)
L'exécution d'une procédure, se lance de plusieurs façons, Raccourci clavier (du genre Ctrl+a), un bouton à cliquer, un événement (un double-clic, un changement de valeur, etc ...)
Là c'est à toi de voir
0
Oui elle fonctionne parfaitement pardon. Elle me permet d'extraire les "Individus" comme souhaité.

Donc on peut tout à fait créer des fonctions qui s'ajouteront par la suite à Excel, je l'ai bien compris. Néanmoins il faut être capable de créer les algorithme ^^'.

Pour la suite, je pense pouvoir faire la comparaison entre les deux "listes de données", étant donné que l'on peut le faire avec des fonctions de bases de Excel.
Néanmoins, pouvez vous m'aider pour l'extraction des "Individus" dans une colonne plutôt qu'une unique cellule ? Car je suppose qu'il faudra pour cela modifier votre algorithme.
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
14 avril 2013 à 15:39
0
Alors,
La macro fonctionne parfaitement, est le raccourci clavier avait été sauvegardé.
(Surtout qu'avec la nouvelle version qu'Excel, surement différente à la votre, j'ai mis pas mal de temps à trouver les options de macro)

Concernant le
"Sélectionner B4:Bxx
Format/Mise en forme conditionnelle
La formule est
=(EQUIV($B4;listeindividus;0)>0)
"

Tout d'abord, je n'ai pas le "mise en forme conditionnelle" dans "format" mais comme pour le raccourci clavier, je pense que tout a été sauvegardé car lorsque je fais un essaie, les INDIVIDUS présent dans la feuille 3 deviennent rouge dans la nouvelle feuille.

Enfaîte, c'est pareil avec les deux autres pages .. du coup même si je comprends globalement les fonctions des 'encadrés', je ne pense pas pouvoir les modifier moi même, notamment pour tout ce qui est mise en page comme déplacer les cellules par exemple

Merci beaucoup en tout cas
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
Modifié par ccm81 le 14/04/2013 à 16:41
1. Pour une MFC avec excel >=2007 (trouvé sur le forum)
Sélectionner la plage
Onglet Accueil
Module Style
Mise en Forme conditionnelle
Nouvelle régle

2. Pour ce qui est de la mise en place, DANS L'ETAT ACTUEL
2.1. j'ai utilisé la cellule A4 pour mettre le résultat "en ligne".
RQ. tu peux ici, utiliser la cellule que tu veux
2.2. Le résultat en colonne suppose que tu as sélectionné la cellule à droite de A4 avant le ctrl+d
Deux choses sont possibles, là c'est à toi de voir/dire
2.2.1. On peut se passer de la cellule intermédiaire A4
2.2.2. On peut obtenir directement ou non le tableau en colonne ... où on veut

Pour ce qui est de ton classeur, c'est un peu difficile d'imaginer comment tu mets tout ça en place. Peux tu en envoyer une partie significative au format excel 2003 sur cjoint.com et joindre le lien obtenu à ton prochain message

RQ. Inscris toi sur le forum, ça facilitera l'accès aux liens obtenus depuis cjoint.com
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
Modifié par ccm81 le 14/04/2013 à 16:59
Avant de plier boutique pour la journée, une tentative pour colorer en bleu les mots extraits qui suivent un mot donné
https://www.cjoint.com/?3Doq5WgVUmB
bonne fin de journée
0
Scoldt Messages postés 45 Date d'inscription vendredi 9 juillet 2010 Statut Membre Dernière intervention 22 juillet 2013 3
Modifié par Scoldt le 14/04/2013 à 17:30
(nouveau pseudo du coup, mais toujours même personne ;) )

Alors, ce que je voudrais obtenir est quelque chose comme ceci :
https://www.cjoint.com/?3DorCTbmqCA

Bien évidemment je n'ai mis dans mon exemple aucune formule ou macro, ne sachant pas vraiment comment m'en servir.
Bonne journée à vous, j'attendrais donc votre prochaine réponse et va tâcher de me pencher un peu sur les informations que vous m'avez donnés jusqu'à présent ! :)
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
15 avril 2013 à 10:31
Bonjour

Je t'ai demandé le fichier au format excel 2003 (Fichier/enregistrer sous/Type ...)

bonne suite
0
Scoldt Messages postés 45 Date d'inscription vendredi 9 juillet 2010 Statut Membre Dernière intervention 22 juillet 2013 3
15 avril 2013 à 10:50
Au temps pour moi ...

Voici : http://cjoint.com/13av/CDpkXHFfOEQ.htm
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
15 avril 2013 à 11:40
Le fichier est au bon format mais, je ne vois pas comment va dérouler le scenario.
1. On donne en feuille Rapport la phrase à traiter
2. Dans la feuille -ne pas modifier- on donne la liste des mots à supprimer
3. Ensuite, que doit il se passer?
0
Scoldt Messages postés 45 Date d'inscription vendredi 9 juillet 2010 Statut Membre Dernière intervention 22 juillet 2013 3
15 avril 2013 à 12:20
Vous n'avez pas les pages "Listes" et "Résultats" ?

Dans la page "Listes", la liste des individus, la 'base de données' en somme, et la page "Résultats" est lorsque les informations sont traitées.

Je ne sais pas si tout s'affiche bien avec le format que je vous ai envoyé, donc voici des screens ce sera plus simple ;

Page 1 : http://imageshack.us/a/img213/7305/page1bv.png
Page 2 : http://imageshack.us/a/img194/3033/page2wc.png
Page 3 : http://imageshack.us/a/img201/7331/page3t.png
Page 4 : http://imageshack.us/a/img62/6744/page4j.png
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
15 avril 2013 à 15:08
J'ai bien toutes les feuilles complétées, mais je ne sais pas quand, comment elles doivent être complétées.

1. Dans la feuille LISTES
Pour le moment il y a deux listes Une orange et une rouge
Comment et quand ces listes sont elles prises en compte dans l'histoire

2. Dans la feuille Résultat
2.1. la plage B5:C14 contient INDIVIDU1, ... INDIVIDU20
Cette plage est elle fixée
parmi ces individus seuls INDIVIDU1 à INDIVIDU7 sont dans le texte de la feuille Rapport.
Que doit on faire de ces derniers (I-1 ... I-7)
Que doit on faire des autres (I-8 ... I-20)
2.2. La plage F5:F14 contient la sous liste de la plage B5:B14 des individus figurant dans la feuille LISTES, dont seuls I-6, I-7 figurent dans la feuille Rapport.
Que deviennent I-1 ... I-5

RQ1. Tout serait beaucoup plus clair (pour moi) si tu me décrivais de façon "littéraire" le scenario envisagé en m'expliquantpas à pas ce qui doit se passer une fois les feuilles Rapport, -ne pas modifier- et éventuellement LISTES renseignées

RQ2. Si tu veux extraire du texte de la feuille Rapport les individus figurant en B5:B14 de la feuille Résultats, la fonction nettoie n'a plus son utilité
0