Supprimer les articles (le, la, l', les, ...) d'une cellule

Bonjour à tous,

Je souhaiterais savoir si quelqu'un a une solution pour supprimer uniquement les articles (le, la, l', les, ...) d'une cellule sans les supprimer lorsqu'ils apparaissent dans des mots (exemple : je souhaite supprimer uniquement l'article "les" mais si j'ai le mot "ampoules" dans la cellule, il ne faut pas que "les" soit supprimé et que je vois "ampou" au lieu de "ampoules").

J'ai essayé en VB ou avec une succession de SUBSTITUE et je n'arrive pas à supprimer uniquement les articles. Si j'ai des mots qui contiennent les articles, les mots n'apparaissent pas comme il faut (comme décrit dans l'exemple ci-dessus). Il faudrait que le texte à supprimer corresponde exactement, qu'il matche exactement.

Mon objectif est d'avoir une cellule ou je peux écrire un titre où tous les articles sont supprimés automatiquement. Par exemple, j'écris dans une cellule le titre "Vérification des sauvegardes" => La cellule d'à côté me renvoie "Vérification sauvegardes" en ayant supprimé l'article "des" uniquement sans supprimer le "des" de "sauvegardes" ("Vérification sauvegardes" à avoir au lieu de "Vérification sauvegar").

En vous remerciant par avance pour votre aide.

Bonjour,

Essayez ceci, dans la fonction ,SUBSTITUE insérez un caractère avant l'article à supprimer, exemple ici:

=SUBSTITUE("$" & A1;"$les ";"")

petite précision, le caractère à ajouter est inclus dans la formule, pas dans le texte a traiter.

Cdlt

Bonjour,

Tu désires supprimer les articles qui précèdent tes textes. Exemple "les ampoules" devient ampoules", "l'auto" devient "auto"
Pour cela il te suffit de supprimer la partie de texte située devant l'espace ou la partie de texte située devant l'apostrophe, l'apostrophe y compris
Pour cela tu disposes d'une fonction :

=STXT(texte; numéro_de_départ; nombre_de_caractères)

@+

Bonjour à tous,

Un essai formule ?

=SI(ESTNUM(CHERCHE(" les ";" "&A1&" "))+ESTNUM(CHERCHE(" l' ";" "&A1&" "))=1;"";A1)
7mots.xlsx (9.26 Ko)

Bonjour à tous !

Une autre approche ?

=REDUCE(F4;tArt[Articles];LAMBDA(a;c;SUBSTITUE(a;c;"")))
image

Note : Un espace a été inséré à la fin de certains articles afin d'éviter une confusion textuelle.

Bonjour Crapule , à tous ,

Une formule pour O365 qui retire d'un texte les mots d'une liste de mots (articles). Les mots peuvent être situés n'importe où dans le texte.

Voir la formule en B2 à recopier vers le bas :

=LET(Mots;"le la les l' d' des le la l' les";
   Apos;SUBSTITUE(A2;"'";"' ");
   Frac;FRACTIONNER.TEXTE(Apos;" ");
   Res;SI(ESTNUM(CHERCHE(Frac;Mots));"";Frac);
   JOINDRE.TEXTE(" ";VRAI;Res))

Mots : la liste des mots à supprimer séparés par un espace

Apos : ajout d'un espace après les apostrophes

Frac : fractionner le texte Apos en un tableau (un mot par élément du tableau)

Res :mettre à vide les éléments du tableau Frac qui sont présents parmi les mots énumérés dans Mots

JOINDRE.TEXTE(" ";VRAI;Res)) : concaténer le tableau résultat expurgé des mots indésirables.

image

...

Bonjour à tous,

Merci à tous pour vos solutions !

Vous êtes incroyables, tellement rapides et efficaces pour proposer des solutions. On dirait que c'est un concours entre vous pour apporter en peu de temps la meilleure solution.

Mafraise, ta solution est exactement ce qu'il me faut ! Merci encore vraiment !

J'ai modifié ta formule comme ceci pour prendre en compte tous les articles FR (le, la, l', les, un, une, des, du, de la, de l', d') et EN (the, a, an) + des mots comme et, en, and, in :

=LET(Mots;"le la l' les un une des du de d' the a an et en and in";
Apos;SUBSTITUE(A2;"'";"' ");
Frac;FRACTIONNER.TEXTE(Apos;" ");
Res;SI(ESTNUM(CHERCHE(Frac;Mots));"";Frac);
JOINDRE.TEXTE(" ";VRAI;Res))

Je n'aurais jamais réussi à trouver une formule de ce type. C'est vraiment du haut niveau.

Encore merci à vous tous pour vos solutions. J'apprécie beaucoup votre aide, votre rapidité et efficacité.

Bon après-midi à vous.

Bonjour à tous de nouveau !

Bien...

Je vous remercie de ce retour.

RE,

Merci de ton retour qui fait plaisir, c'est rare !

En effet, mafraise est toujours présent pour donner une solution fruitée

Re-bonjour à tous, pouvez-vous svp me dire comment je peux faire pour mettre la 1ère lettre de chaque phrase en majuscule (1ère lettre de chaque phrase uniquement, pas de chaque mot) ? J'ai essayé des imbrications avec

=NOMPROPRE(GAUCHE(A2;1))&STXT(A2;2;NBCAR(A2))

sans succès ou alors cela fonctionnait mais je perdais la suppression des articles.

Il me faudrait quelque chose de ce style mais uniquement pour la 1ère lettre de la phrase à mettre en majuscule car le code ci-dessous met une majuscule à chaque mot.

=NOMPROPRE(RemoveAccent((LET(Mots;"le la l' les un une des du de d' et en dans the a an and in";
Apos;SUBSTITUE(A2;"'";"' ");
Frac;FRACTIONNER.TEXTE(Apos;" ");
Res;SI(ESTNUM(CHERCHE(Frac;Mots));"";Frac);
JOINDRE.TEXTE(" ";VRAI;Res)))))

En vous remerciant par avance pour votre aide.

Bonjour à tous de nouveau !

La nature de votre demande étant différente, merci d'ouvrir un nouveau sujet.

Bonsoir,

Excusez-moi, comme c'était dans la continuité de ma demande avec une amélioration à apporter. J'hésitais à créer un nouveau sujet.

Merci à vous. Bonne soirée.

Re,

J'avais commencé à adapter ma première formule. Entre temps JFL (que je salue ) a fait la suggestion de créer un nouveau sujet.

Loin de moi de vouloir contrecarrer la proposition de FLV mais la modification que je propose est une simple adaptation de la formule que j'avais déjà proposée dans ce fil. Donc je la publie dans ce fil. Fais je bien ? je ne sais pas . La formulation de la nouvelle question peut laisser penser que la modification proposée ne réponde pas entièrement à l'interrogation.

Essayez :

=LET(Mots;"le la les l' d' des";
Apos;SUBSTITUE(A2;"'";"' ");
Frac;FRACTIONNER.TEXTE(Apos;" ");
Res;SI(ESTNUM(CHERCHE(Frac;Mots));"";Frac);
Join;JOINDRE.TEXTE(" ";VRAI;Res);
MAJUSCULE(GAUCHE(Join;1)) & STXT(Join;2;999))

Bonjour mafraise, bonjour à tous,

Merci encore pour ton aide ! C'est exactement ça dont j'avais besoin.

=RemoveAccent(LET(Mots;"le la l' les un une des du de d' et en dans the a an and in";
   Apos;SUBSTITUE(A2;"'";"' ");
   Frac;FRACTIONNER.TEXTE(Apos;" ");
   Res;SI(ESTNUM(CHERCHE(Frac;Mots));"";Frac);
   Join;JOINDRE.TEXTE(" ";VRAI;Res);
   MAJUSCULE(GAUCHE(Join;1))&STXT(Join;2;999)))

J'utilise une fonction nommée "RemoveAccent" (en Visual Basic) qui permet de retirer tous les accents de mon titre, ensuite, j'utilise ta formule pour retirer du titre tous les articles et mots non souhaités tout en ajoutant une majuscule uniquement au début du titre. J'ai ainsi un titre "formaté" pour correspondre à la convention de nommage que je veux mettre en place pour le stockage de nos fichiers.

Encore merci beaucoup pour ton aide. C'est incroyable la capacité que tu as de répondre à un besoin aussi rapidement et aussi efficacement car cela fonctionne à chaque fois en 1 post de ta part !

Merci JFL d'avoir laissé mafraise apporter des améliorations à ma demande d'origine.

Bonne journée à vous tous.

Rechercher des sujets similaires à "supprimer articles"