"Remplacer par" multiples et consécutifs

  • Initiateur de la discussion Initiateur de la discussion nicopat
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

nicopat

XLDnaute Junior
Bonjour,

Je dispose d'une table de données dans mon fichier excel, comme dans l'exemple ci-joint (feuillet 2).
Dans un autre feuillet (feuillet 1), j'ai plein de formules faisant des recherchev() dans la table du feuillet 2.
Dans l'exemple ci-joint, j'ai une table de 6 lignes, et 6 formules, mais en réalité, j'ai une table de 144 lignes et des milliers de formules.

Je cherche un moyen de remplacer dans les formules la fonction recherchev() par la valeur présente dans la table (exemple : remplacer "RECHERCHEV("A+B";Feuil2!A:B;2;FAUX)" par "1"), sans avoir à faire 144 "remplacer par" successifs. Et ce uniquement dans les cellules A1:B15 du feuillet 1, (pas dans tous les feuillets du classeur).

Je peux lister dans une colonne A les expressions à remplacer et dans une colonne B les expressions qui les remplacent, mais je voudrais éviter d'avoir à le faire manuellement 144 fois...

Je sais que c'est possible via une macro VBA, mais je ne sais pas le faire

Merci de votre aide!

Nicole
 

Pièces jointes

apparemment, ça fonctionne bien dans le fichier test.
Suis en train de le tester dans mon fichier réel.
J'ai environ 8000 formules à traiter avec environ 10 rehcerchev() à remplacer par formule, donc ça prend du temps...
Je posterai le résultat dans qq minutes (j'espère)
 
Non, ça ne marche pas dans mon fichier : même en ne sélectionnant que 10 cellules, un message d'erreur Microsoft Visual Basic avec une croix rouge et pour seul contenu "400" s'affiche.
Le contenu du feuillet semble inchangé.

Une idée?

PS : les formules sont du types :
=BH8*BT8*RECHERCHEV("A";'Confrontation'!$Y$2:$Z$146;2;FAUX)
+ BH8*BU8*RECHERCHEV("B vs F+";'Confrontation'!$Y$2:$Z$146;2;FAUX)
+ BH8*BV8*RECHERCHEV("G>";'Confrontation'!$Y$2:$Z$146;2;FAUX)
+ BH8*BW8*RECHERCHEV("R";'Confrontation'!$Y$2:$Z$146;2;FAUX)
+ BH8*BX8*RECHERCHEV("Z-";'Confrontation'!$Y$2:$Z$146;2;FAUX)
+ BH8*BY8*RECHERCHEV("Y+";'Confrontation'!$Y$2:$Z$146;2;FAUX)
+ BH8*BZ8*RECHERCHEV("1";'Confrontation'!$Y$2:$Z$146;2;FAUX)
+ BH8*CA8*RECHERCHEV("5<Z+";'Confrontation'!$Y$2:$Z$146;2;FAUX)
+ BH8*CB8*RECHERCHEV("7";'Confrontation'!$Y$2:$Z$146;2;FAUX)
+ BH8*CC8*RECHERCHEV("8";'Confrontation'!$Y$2:$Z$146;2;FAUX)
+ BH8*CD8*RECHERCHEV("6";'Confrontation'!$Y$2:$Z$146;2;FAUX)
+ BH8*CE8*RECHERCHEV("3";'Confrontation'!$Y$2:$Z$146;2;FAUX)
 
Dernière édition:
Re,

Pouvez-vous joindre un fichier réduit mais néanmoins représentatif de votre fichier ?

Nota: c'est normal que ça ne fonctionne pas puisque vos formules n'ont pas la structure indiquée dans votre premier message 😡
 
Dernière édition:
Bonsoir à tous,

Avec le dernier fichier que tu as fourni, voici une version v2 un peu plus complexe.

Pour un peu moins de 95 000 "RechercheV" à remplacer (7 896 formules à 12 "RechercheV" par formule) , mon vieux bousin qui date de mai 2007 exécute la macro en environ 21 secondes. Je n'ai pas tenu compte de l'optimisation de la durée d'exécution, puisqu'à priori, c'est une macro à usage unique.

Attention! Je n'ai pas créé de macros génériques. Les macros sont adaptées aux formules de votre fichier:
  • je ne gère pas les littéraux de type string entourés de guillemets. Ce qui signifie que si les chaines de DATA contenaient des parenthèses ouvrantes ou fermantes, les résultats seraient erronés
  • j'ai considéré que le retour des évaluations des expressions RechercheV étaient toutes des valeurs numériques
Dans le cas contraire, il faudrait revoir les macros.
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
75
  • Question Question
Microsoft 365 Power Query
Réponses
7
Affichages
194
Réponses
0
Affichages
291
Retour