Assiste.com - Sécurité informatique - Vie privée sur le Web - Neutralité d'Internet

cr  22.06.2016      r+  07.08.2024      r-  07.08.2024      Pierre Pinard.         (Alertes et avis de sécurité au jour le jour)

Attention - limitation de la recherche dans 8192 caractères maximum, sinon rien ne se passe et aucun message pour le signaler

Lors d'une recherche/remplacement relativement aveugle (à travers toute une feuille de calcul, il est possible de ne pas s'apercevoir que la fonction de recherche/remplacement (et la fonction de recherche seule) n'a pas trouvé quelque chose qui existe pourtant bien. Dès que le contenu d'une cellule dépasse les 8192 caractères (espaces compris), la fonction passe dessus sans rien signaler !

Pour remplacer une chaîne de caractères donnée (ou un seul caractère) dûment spécifiée par autre chose (ou rien du tout si on cherche à supprimer quelque chose), il faut utiliser la fonction SUBSTITUE() et non pas la fonction REMPLACER() qui, elle, sert à remplacer non pas un texte particulier par un autre, mais n'importe quel texte dont on indique simplement la position de départ et la longueur, quel que soit le contenu.

SUBSTITUE() possède quatre arguments : SUBSTITUE(texte; ancien texte; nouveau texte; position)

Chacun de ces arguments peut être le contenu d'une cellule référencée ou, entre guillemets, un texte saisi, ou une formule.

Si le texte saisi contient des guillemets anglais « " », ils doivent être doublés (« "" ») sinon, un guillemet simple indiquerait à Excel la fin (fermeture) d'un argument saisi.

La fonction SUBSTITUE() est sensible à la case (majuscules / minuscules).

  1. texte est un argument obligatoire et représente le texte source dans lequel on va faire une substitution. Ce texte peut être le contenu d'une cellule référencée ou, entre guillemets, un texte saisi, ou une formule.
  2. ancien texte est un argument obligatoire et est le texte, la chaîne de caractères, la lettre à rechercher pour être remplacé.
  3. nouveau texte est un argument obligatoire et est le texte de remplacement de l'ancien
  4. position est un argument facultatif. S'il n'est pas spécifié, toutes les occurrences d'ancien texte seront remplacées par nouveau texte. S'il est spécifié, seule l'occurrence spécifiée sera remplacée, les autres seront ignorées et resteront inchangées.

Dans l'exemple suivant, nous avons du texte envahi de deux balises HTML. Nous allons supprimer ces balises HTML pour ne conserver que le texte (on utilise deux SUBSTITUE() imbriqués). D'autre part, la chaîne de caractères <span class="gs"> contenant des guillemets anglais, on les double.

A
B
C
1Texte avant substitutionsTexte après substitutionsLa formule utilisée dans la colonne B
2<span class="gs">A</span>dvanced <span class="gs">A</span>ccess <span class="gs">C</span>ontent <span class="gs">S</span>ystemAssociation des Agences Conseils en Communication=SUBSTITUE(SUBSTITUE(A2;"<span class=""gs"">";"");"</span>";"")
3<span class="gs">A</span>ccess <span class="gs">C</span>ontrol <span class="gs">L</span>istAdvanced Access Content System=SUBSTITUE(SUBSTITUE(A3;"<span class=""gs"">";"");"</span>";"")
4<span class="gs">A</span>ctive <span class="gs">D</span>irectory <span class="gs">R</span>ights <span class="gs">M</span>anagement <span class="gs">S</span>ervicesAccess Control List=SUBSTITUE(SUBSTITUE(A3;"<span class=""gs"">";"");"</span>";"")

Dans l'exemple suivant, on se sert du décompte du nombre de caractères avant et après substitution pour compter le nombre de caractères substitués :
Il y a donc 7 "o" dans hippopotomonstrosesquipédaliophobie, cette maladie de la peur des mots longs, pleins de syllabes. Anticonstitutionnellement, le mot généralement considéré comme le plus long de la langue française (c'est faux), est « écrasé », et encore, il y a l'invention de Pancrace Eusèbe Zéphyrin Brioché (Le savant Cosinus) et son anémélectroreculpédalicoupeventombrosoparacloucycle !

A
B
C
DEF
1Texte avant substitutionsTexte après substitutionsLa formule utilisée dans la colonne BNb de caractères avant substitutionNb de caractères après substitutionNb de "o"
2hippopotomonstrosesquipédaliophobiehippptmnstrsesquipédaliphbie=SUBSTITUE(A2;"o">";"")=NBCAR(A2)=NBCAR(B2)=D2-E2
3hippopotomonstrosesquipédaliophobiehippptmnstrsesquipédaliphbie=SUBSTITUE(A2;"o">";"")35287