Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Caractère générique dans remplacer ?

375 views
Skip to first unread message

Marco

unread,
May 18, 2001, 7:54:25 AM5/18/01
to
Bonjour tout le monde,

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.


Pascal Engelmajer

unread,
May 18, 2001, 8:36:25 AM5/18/01
to
salut,
dans léditeur vba ça ne marche pas dans le sens ou tu veux :
la recherche se fait bien sur le caractère générique ( case critères
spéciaux cochée) mais le remplacement remplace tout y compris les caractères
trouvés avec *
chercher fonction(*) remplacer par "" (rien)
trouve fonction(45.2) et le remplace par rien et non par 45.2
une astuce en vba consiste à écrire la fonction :
function FONCTION(x)
FONCTION(x)=x
end function
mais t'est-ce bien utile
une petite astuce avec word qui revient au même :
Word n'est guére mieux cependant (case Utiliser les caractères génériques
cochée)
il remplace avec la même recherche
fonction(45.2) par (45.2) ce qui en général est équivalent à 45.2
tu peux aussi en Word
enregistrer un macro : remplace

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...

Marco

unread,
May 18, 2001, 9:19:58 AM5/18/01
to
Merci Pascal pour ces éclaicissements mais pardonnes-moi je me suis mal
exprimé : je cherche à enlever les fonctions dans une feuille de calcul.et
non dans VBA.
Exemple : si ma colonne A est remplie de "=DECALER(Chemin!$A$1,B1,1)"
je souhaite remplacer 'DECALER(*,B1,1)' par *
donc obtenir "=Chemin!$A$1"
Le passage sur Word est donc exclu...

"Pascal Engelmajer" <pascal.e...@ilyapa.net> a écrit dans le message
news: uGnSld53AHA.1280@tkmsftngp04...

Laurent Mortézai

unread,
May 18, 2001, 10:34:18 AM5/18/01
to
Marco a écrit :

> 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

Marco

unread,
May 18, 2001, 11:29:05 AM5/18/01
to
Bonjour 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...

Pascal Engelmajer

unread,
May 19, 2001, 1:38:22 AM5/19/01
to
salut Marco,
on peut utiliser Word (plus tard puisque tu as résolu ton pb)
en exportant après CTRL " le fichier au format texte (.txt)
puis en le réimportant
amicalement

Pascal
Marco <mlanf...@sada.fr> wrote in message
news:#CWBYz53AHA.1392@tkmsftngp04...
0 new messages