Effacer certains mots d'une cellules via une macro ?

Cdrvois -  
Scoldt Messages postés 48 Statut Membre -
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

Scoldt Messages postés 48 Statut Membre 3
 
Alors alors, je vais essayer d'être plus concis :)

La feuille 3, sera remplie au préalable, avec des individus classés en deux catégories ; liste 1, liste 2.

Lorsque l'on rentre le texte dans la page "rapport", on cherche donc à savoir si dans les INDIVIDUS du texte, se trouvent des individus des listes 1 et 2.
Pour cela, on extrait donc sur la page 2 le nom des individus, puis on compare la liste des individus extraits, avec les listes 1 et 2.
Si certains individus de la liste extraite, sont dans la liste 1, ils apparaissent en orange.
S'il apparaissent dans la liste 2, ils apparaissent en rouge.

Et s'ils n'apparaissent dans aucune des listes, ils n'apparaissent pas sur le second tableau de la page 2.

La page 4 quant à elle, sert juste à votre fonction qui prend ces mots pour les supprimer du rapport, et affiche le résultat sur la page 2 ...

Je ne sais pas si comme cela je suis plus clair ^^'


L'idéal, serait de faire en sorte que la totalité des tableaux des listes 1 et 2 soient pris en compte, même si les cellules sont vides. Ainsi, si l'on veut rajouter des individus pour de prochains essaies, ils seront pris en compte.
Peut-être devrais agrandir le tableau de la page 2 contenant la liste des individus présents dans les listes 1 et 2 ..

Le tableau [Individus suivant le mot "par"] quant à lui, reprendrais donc les Individus qui sont à la suite de ce mot, de manière indépendante avec le reste des fonctions ..
0
ccm81 Messages postés 11033 Statut Membre 2 433
 
Bon, c'est déjà nettement plus clair et précis même si ce n'est pas plus ... concis

Encore besoin de précisions
P1.La feuille 3, sera remplie au préalable, avec des individus classés en deux catégories ; liste 1, liste 2.
OK

P2. on rentre le texte dans la page "rapport"
OK

P3. on cherche donc à savoir si dans les INDIVIDUS du texte, se trouvent des individus des listes 1 et 2.
Tu veux bien dire que parmi les individus du texte figurent des individus qui ne sont pas dans les listes 1 et 2

P3.1. Pour cela, on extrait donc sur la page 2 le nom des individus,
individus trouvés en P3?
La liste extraite est bien la liste des individus trouvés dans le texte de la feuille Rapport, ces individus figurent ou non dans les listes 1 et 2
Cette liste sera dans le tableau "Individus extraits?

P3.2. puis on compare la liste des individus extraits, avec les listes 1 et 2.
pour celà
P3.2.1. Si certains individus de la liste extraite sont dans la liste 1, ils apparaissent en orange. S'il apparaissent dans la liste 2, ils apparaissent en rouge.
OK
P3.2.2. Et s'ils n'apparaissent dans aucune des listes, ils n'apparaissent pas sur le second tableau de la page 2.
OK si oui au P3.1 (et ? sinon)

Si j'interprète bien dans le fichier que tu m'as envoyé, j'ai un problème dans la feuille Résultat
En feuille résultat il devrait y avoir
- Dans le tableau "Individus extraits" uniquement les 7 individus IND1 à IND7
qui figurent dans la feuille Rapport
- Dans le tableau "individus de la LISTE1 ou LISTE2" seulement les 2 individus du premier tableau qui sont dans une des listes 1 ou 2 soit IND6 en rouge et IND7 en orange

Mais je n'ai peut être pas compris ...
0
Scoldt Messages postés 48 Statut Membre 3
 
Quoiqu'il en soit, je vous remercie pour le temps que vous passez sur ma demande ..

Alors.
Effectivement, certains individus du texte peuvent ne pas être contenus dans les Listes. C'est justement afin de savoir si certaines personnes font partis de ces listes que l'on cherche à comparer le contenu du 'texte' dans la page 'Rapport' et les individus des "Listes".

Aucun individu n'est trouvé sur la page 3, puisqu'il s'agit de la base de données sur laquelle on cherche à se référencer. Le but étant donc, de savoir si dans le texte que l'on a, il existe des personnes présentes dans les Listes.

Dans le tableau 'individus extraits' de la page 2, il y aurait tout les individus contenu dans le texte déposé à la page 'rapport', afin d'avoir un résumé du contenu de celui-ci, sans les mots inutiles "aujourd'hui etc etc".
Et c'est à partir de ce tableau d'individus, que je souhaiterai lancer une comparaison avec les différentes listes de la page 3.
Si des individus du texte appartiennent à l'une des listes de la page 3, alors ils apparaissent sur le second tableau de la page 2, avec les caractéristiques décrites précédemment (s'ils sont inscrits dans la liste 1 ; ils apparaissent en orange, et s'ils apparaissent dans la liste 2 ; il apparaissent en rouge)

Si des invidivu du texte (et donc affichés ensuite sur le tableau "individu extrait" de la page 2) n'appartiennent à aucune des deux listes, alors on n'en tient pas compte et ils n'apparaîtront pas ailleurs que sur le tableau récapitulatif.


Concernant la compréhension de la suite, c'est ma faute. Car dans le tableau des invidivus extraits, je suis allé jusqu'à INDIVIDU15, alors qu'il n'y en a que 7 sur la page rapport (j'avais modifié en ajoutant d'autres individus jusqu'à 15 mais je n'ai pas du enregistré la modification avant de l'envoyé), il ne s'agissait donc qu'un exemple, et ce doit être cela qui a embrouillé la compréhension.
Seuls les individus contenus dans le texte initial, seront affichés dans le tableau récapitulatif, oui :)
Pour le reste c'est tout à fait ça !
0
ccm81 Messages postés 11033 Statut Membre 2 433
 
Ben voilà qui éclaircit la situation!
Pour simplifier un peu le code, est ce que ce modèle te convient?
https://www.cjoint.com/?3DprRkRTsDQ
0

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

Posez votre question
Scoldt Messages postés 48 Statut Membre 3
 
Il n'y a actuellement aucune fonction nous sommes d'accord ?

Sinon, oui le modèle me convient
Sauf peut être pour la page "Liste"

L'idée est de faire deux listes distinctes et seulement 2.
La disposition que j'avais donnée précédemment, est sans doute difficile à coder pour la suite, mais était pour éviter que se retrouver avec une liste de nom partant loin dans une seule colonne, c'est pour cela que je l'avais scindé en plusieurs colonnes, tout comme le tableau récapitulatif de la page 2. J'espérais laisser des cases vides au cas où le texte contienne beaucoup de noms d'invidivus. Cela est-il gênant pour la suite ?
0
ccm81 Messages postés 11033 Statut Membre 2 433
 
Bon je tente

1 seule colonne en feuille Résultat, là, ça m'arrange bien

Je laisse les listes 1 et 2 comme au départ sur plusieurs colonnes en feuille LISTES, à priori, ça ne devrait pas trop compliquer la chose

Il ne reste plus qu'à s'y mettre
0
Scoldt Messages postés 48 Statut Membre 3
 
1 seule colonne en feuille résultat ne me dérangerait pas :)

Très bien, je vous remercie et attendrais votre réponse !
0
ccm81 Messages postés 11033 Statut Membre 2 433
 
0
Scoldt Messages postés 48 Statut Membre 3
 
Wahou avec même un bouton pour lancer la recherche et avec une précision sur les noms et le nombre de celui-ci !
C'est tout bonnement excellent merci beaucoup !

Oserais-je vous demander deux/trois choses en plus ...

*Comptez vous faire afficher également les individus suivant le mot "par" ?

*Serait-il possible d'augmenter la taille du second tableau de la page 2 ? Dans le cas contraire, les noms risquent d'apparaître en dehors de celui-ci non ?

*Une autre demande, également pratique ..
En restant sur la même disposition, et j'espère que cela ne modifiera pas trop ce que vous avais déjà fait, s'il s'agit juste de modifier des coordonnées dans vos fonctions..
Pour les tableaux de la page 3, les listes 1 et 2.
Ils sont actuellement en 6x10, et peuvent donc contenir chacun 60 Individus.
Vous serait-il possible d'agrandir ces listes ? par exemple en 10x10 ?

*Suite à l'agrandissement des précédents tableaux, serait-il possible, sur une nouvelle feuille, sans doute entre "Résultats" et "Listes", de mettre en place une fonction, qui permettrait de faire une comparaison de données avec les 300 premières cellules de la colonne A, avec les listes 1 et 2 ?
Dans le même principe que le texte a analyser mais indépendamment de celui-ci, si l'on place une liste de noms dans ce tableau de 1x300, et si ils sont présent dans les listes 1 ou 2, qu'ils apparaissent, sur un second tableau, également sur cette nouvelle page, avec le même principe de couleur que pour l'analyse des données extraites de la page 2 ?

Et .. ce serait tout .. j'ai conscience de vous en demander énormément et d'abuser de votre générosité mais ceci mais serait vraiment utile ..

En vous remerciant et vous souhaitant une bonne soirée.
0
ccm81 Messages postés 11033 Statut Membre 2 433
 
Aie

1. Comptez vous faire afficher également les individus suivant le mot "par" ?
certainement faisable mais comment, où?

2. Serait-il possible d'augmenter la taille du second tableau de la page 2 ?

Si les/les tableaux peuvent être plus grands que la liste affichée, pas de problème, tu le fais
Si les grilles doivent s'adapter aux listes affichées, il faudra coder

3. Vous serait-il possible d'agrandir ces listes ? par exemple en 10x10 ? </ital>
Tu vas le faire
Alt-F11 pour accéder au code
Module 1
liste des constantes feuille LISTE
- celL1 est l'adresse de la cellule colorée (couleur qui sera récupérée par le code)
- actuellement tu dois avoir L1="liste1" et L2="liste2" , j'avais nommé ces plages, mais tu mettras plutôt leur adresse ici "B5:B14" pour L1
tu modifies les constantes L1, L2, celL1, celL2 pour qu'elles correspondent aux nouvelles plages
' Feuille LISTES
Public Const Flis = "LISTES"
Public Const L1 = "B5:G14"
Public Const L2 = "B18:G27"
Const celL1 = "B4"
Const celL2 = "B17"

4. *Suite à l'agrandissement des précédents tableaux, serait-il possible, sur une nouvelle feuille, sans doute entre "Résultats" et "Listes", ....
c'est jouable

Bonne soirée
0
Scoldt Messages postés 48 Statut Membre 3
 
Alors, je pensais faire comme il avait été fait sur l'excel que je vous avais envoyé.
Sur la page "Résultats", un mini tableau en dessous de celui des individus extraits pour distinguer les individus suivant le mot 'par', si cela est possible.


Effectivement je peux le changer moi même ^^'
Je pense qu'en codage cela serait trop de complication pour rien j'augmenterai la taille initiale.

Bien repéré dans l'algorithme.
Je devrais changer quelques trucs notamment à cause du titre des tableaux, mais ce que je souhaitais effectivement était de pouvoir distinguer les différents éléments du codage, merci pour ces explications je saurais me débrouiller :)

J'attends donc votre version finale pour mettre au point tout cela, merci beaucoup ! :D
0
ccm81 Messages postés 11033 Statut Membre 2 433
 
Bonjour

Est ce que ceci ne suffirait pas pour mettre en évidence les individus précédés par un mot donné (sans code, avec une simple MFC dans le tableau des individus extraits comme déjà fait précédemment)
https://www.cjoint.com/?3DqjuJkplAR
J'en ai profité pour faire un peu de ménage dans le code

Resterait le point 4

Tu mettras à jour les constantes et les différents "trucs" dans la version "finale" .... un vraie utopie en informatique

Bonne journée
0
Scoldt Messages postés 48 Statut Membre 3
 
Une "MFC" ?
Le résultat semble impeccable. Je suppose que si besoin est je pourrais m'y retrouver dans l'algorithme pour changer de position la cellule utilisée.
Mais euh .. pour le tableau "individu suivant le mot" : "par", il y aurait-il possibilité de le mettre en dernière page, avec les mots à effacer ? Histoire de ne garder que les noms que je mettrais moi même en évidence dans un second temps ? Car je ne vois pas trop où se trop la "(STXT(texte;CHERCHE($B5;texte;1)-(NBCAR(bleu)+1);NBCAR(bleu))=bleu)" et donc comment la modifier ..

Je parle de trucs car mon niveau en algorithme tient davantage du bidouillage au petit bonheur la chance, mais pour l'instant j'ai compris comment faire ^^'
0
ccm81 Messages postés 11033 Statut Membre 2 433
 
Tu fais un COUPER/coller (attention pas un copier/coller) de la plage B1:B2 de la feuille Résultat dans la feuille -ne pas modifier- par exemple en F4:F5
Le nom bleu devrait alors être attribué à la cellule F5 de cette feuille

La formule de la MFC n'as pas a être touchée (ici du moins)

RQ1. tu pourrais protéger en écriture la feuille -ne pas modifier- avec un mot de passe
RQ2. En principe tu n'as pas à toucher au code des procédures et fonctions, mais seulement aux valeurs attribuées aux constantes en cas de modification de la configuration. C'est l'avantage de mettre ces valeurs en constantes globales (vues de partout) plutôt que de les mettre "en dur" dans le code des procedures
0
Scoldt Messages postés 48 Statut Membre 3
 
Effectivement, cela fonctionne et j'ai bien noté vos remarques.

Cependant, je remarque une erreur.
Si dans la page "rapport", je rentre "INDIVIDU1" (pour l'exemple, mais cela le fait pour tous), il m'indique bien "texte nettoyé : INDIVIDU1" mais "Nombres d'individus trouvé -> 0"
Et il omet de le marquer dans la liste des individus extraits de la page 2.

Sans doute un problème de "-1" ?
0
ccm81 Messages postés 11033 Statut Membre 2 433
 
Tu vois, ça n'a pas tardé (je parle du bug bien sûr)
https://www.cjoint.com/?3DqlGaVcNJq

Comme quoi, la version finale ....

PS. Je n'ai pas encore attaqué le point 4
0
ccm81 Messages postés 11033 Statut Membre 2 433
 
J'ai du mal avec le point 4

1. Comment nommer cette feuille, ça c'est accessoire
2. Peux tu m'envoyer un fichier avec uniquement un exemple de contenu de cette feuille
0
Scoldt Messages postés 48 Statut Membre 3
 
Alors, voici un exemple concret, avec une explication à côté ainsi qu'une petite question ^^'

Enfin du coup j'ai repris votre fichier en ajoutant une page pour montrer ce que je souhaiterai, je ne sais pas si cela vous serait plus pratique ou non pour travailler ?

https://www.cjoint.com/?CDqns4MXIo3
0
ccm81 Messages postés 11033 Statut Membre 2 433
 
Je ne sais pas si j'ai bien compris
https://www.cjoint.com/?3DqoVPy7oSI

Une question, si ultérieurement je souhaite modifier le nom des feuilles, je devrais sans doute le modifier également dans vos algorithme ? Ou est-ce que seules les valeurs des pages ou leurs positions sont prises en compte ?
Tu n'as, en principe, pas à toucher au code des procédures . Si tu changes un nom de feuille ou l'emplacement d'une cellule clef, tu modifie la constante correspondante dans la liste des constantes
0
Scoldt Messages postés 48 Statut Membre 3
 
C'est absolument parfait et apparemment fonctionnel :D

Merci pour la précision, tout devrait pouvoir fonctionner comme souhaité alors.

Une remarque cependant concernant le message que je vous ai marqué dans le fichier envoyé ;
"Un soucis cependant ;
Certains "individus", auront parfois un "de ..." ou "d' ..." ou "du ..." ou ", ..."
L'idéal, et parce que ces suffixes risqueraient de fausser les résultats, il faudrait que lors de l'analyse, tout ces suffixes soient soit enlevés, soit non pris en compte, après je ne sais pas comment cela peut être fait ..."

Cela signifie que dans les listes 1 et 2, il y aura donc des "INDIVIDU#"
Sauf, que dans certains cas, il se peux que certains INDIVIDUS ait un .... non pas un suffixe mais j'ai oublié le mot ^^'
Bref par exemple, dans la liste 2, nous aurons : "INDIVIDU1" mais dans la "grande liste qui sera analysé, il se peut qu'il apparaisse comme "INDIVIDU1 de blabla" et dans ce cas là, il ne serait pas reconnu durant l'analyse, d'où ma demande s'il y a moyen, là aussi, de faire une analyse en supprimant les termes commençant par un "de ..." ou "d' ..." ou "du ..." ou ", ..." ?
Mais c'est en tout cas pile comme je le souhaitait, bravo et merci à vous :)
0