Savez-vous s'il existe un caractère générique pour le "Remplacer" d'Excel
2000 ? En effet je souhaite supprimer une fonction et ne garder que
l'argument, donc il faudrait que je remplace FONCTION(*) par *. Est-ce
possible ?
Merci d'avance pour vos idées.
rechercher "FONCTION("
suprimer le résultat de la recherche par la touche del
rechercher ")"
suprimer le résultat de la recherche par la touche del
terminer par l'appel récursif de remplace
remplace
Pascal
Marco <mlanf...@sada.fr> wrote in message
news:uEw7kD53AHA.1496@tkmsftngp03...
"Pascal Engelmajer" <pascal.e...@ilyapa.net> a écrit dans le message
news: uGnSld53AHA.1280@tkmsftngp04...
> Savez-vous s'il existe un caractère générique pour le "Remplacer" d'Excel
> 2000 ? En effet je souhaite supprimer une fonction et ne garder que
> l'argument, donc il faudrait que je remplace FONCTION(*) par *. Est-ce
> possible ?
Plusieurs solutions me viennent à l'esprit:
1- écrire une macro de remplacement spécifique
2- après avoir "anesthésié" les formules, utiliser des fonctions
d'extractions de chaînes de caractères (GAUCHE, DROITE, STXT,TROUVE...)
pour isoler le paramètre souhaité
3-après avoir anesthésié les formules, utiliser la commande
rechercher/remplacer astucieusement pour isoler le paramètre souhaité
Pardonne ma paresse intellectuelle, je m'attarde sur la troisième
solution seulement:
D'abord, pour "anesthésier" les formules, fais Rechercher/remplacer les
"=" par " =" (un espace avant le signe égal). Cela transforme toutes les
formules en simples chaînes de caractères. Pourquoi je conserve le "="
(je pourrais en effet remplacer "=" par "" et l'anesthésie serait tout
aussi valable)? Le signe "=" permet de distinguer les formules
anesthésiées des autres cellules contenant vraiment du texte. Cette
distinction peut avoir son importance, par exemple si tu veux ressuciter
tes formules plus tard et qu'il n'y a plus de signe "=", ça devient
impossible de savoir quelles cellules étaient à l'origine des formules
et quelles cellules étaient texte. Je te laisse trancher.
Ensuite, tu fais plusieurs vagues de rechercher/remplacer (l'idée est de
ne pas utiliser plusieurs "*" à la fois), je m'explique:
Prenons la formule "=DECALER(Chemin!$A$1;B1;1)"
1-tu recherches/remplaces "=" par " =", tu obtiens "
=DECALER(Chemin!$A$1;B1;1)"
2-recherche/remplace ";*)" par "" (rien), tu obtiens "
=DECALER(Chemin!$A$1"
3-recherche/remplace " =*(" par "=", tu obtiens "=Chemin!$A$1"
Et voilà!
Une mise en garde, cette procédure devrait extraire le premier paramètre
d'une fonction en comportant plusieurs. Aussi, elle ne marchera pas pour
une fonction n'ayant qu'un seul paramètre, ou pour des fonctions
imbriquées (plusieurs niveaux de parenthèses). Mais le principe peut
être raffiné, tu comprends maintenant le principe. A+
Laurent
La solution de la macro ne vaut pas le coup car je pense que je mettrais
moins de temps à remplacer tout à la main qu'à faire la macro.
La solution 2 me fait changer de cellule (si j'ai bien compris, puisqu'il
faut utiliser les fonctions texte), et cela ne m'arrange pas du tout...
Mais la solution 3 marche parfaitement et rapidement ! (en 3 pti coups de
remplacer c'est réglé)
Merci beaucoup Laurent!
"Laurent Mortézai" <lmor...@metro.ca> a écrit dans le message news:
3B0532EA...@metro.ca...