Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Transformer Formule VBA en Formule normale dans cellule

  • Initiateur de la discussion Initiateur de la discussion Tonino7
  • 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 !

Tonino7

XLDnaute Occasionnel
Bonjour à tous,

connaitriez vous un moyen de transformer une formule créée en VBA, directement dans une cellule excel en formule locale.

Exemple:

Je souhaiterais que dans la cellule A1 vienne s'inscrire la formule suivante:
=EQUIV("chien";animaux;0) + EQUIV("chat";animaux;0)

et ceci, grace à du code VBA, qui pourrait etre celui ci dessous :

range("A1").formula = match("chien",range("animaux"),0) + match("chat",range("animaux"),0)

mais bien évidemment, ça ne marche pas. Donc avez vous un code VBA dans ce style là, à me proposer ?

merci

(je ne veux pas mettre directement "equiv" dans le code vba... car le fichier excel est voué à etre utilisé dans plusieurs versions d'excel à l'étranger, soit italien, espagnol, néerlandais.... donc il ne reconnaitra pas le Equiv)
 
Re : Transformer Formule VBA en Formule normale dans cellule

Bonjour Tonino7
Code:
[COLOR="DarkSlateGray"][B]Range("A1").FormulaR1C1 = "=MATCH(""chien"",animaux,0)+MATCH(""chat"",animaux,0)"[/B][/COLOR]
peut-être ?​
ROGER2327
#3450


20 Floréal An CCXVIII
2010-W18-7T02:11:45Z
 
Re : Transformer Formule VBA en Formule normale dans cellule

Bonjour Tonino7
Code:
[COLOR="DarkSlateGray"][B]Range("A1").FormulaR1C1 = "=MATCH(""chien"",animaux,0)+MATCH(""chat"",animaux,0)"[/B][/COLOR]
peut-être ?​
ROGER2327
#3450


20 Floréal An CCXVIII
2010-W18-7T02:11:45Z

effectivement, ça marche. Merci. Mais je m'aperçois que ma problématique est un tantinet plus complexe :

Les noms à rechercher "chien" ou "chat"... sont en réalité des variables. Et je souhaiterais faire en sorte d'inclure la nom de la variable dans la formule, à la place de constantes comme "chien" ou "chat".
en imaginant, que la variable s'appelerait NOM_ANIMAL, le code VBA devrait donner quelquechose comme ça :

Range("A1").FormulaR1C1 = "=MATCH(NOM_ANIMAL,animaux,0)"

et évidemment, cela ne marche pas... en raison de l'histoire des guillemets. Auriez-vous la solution?

merci
 
Re : Transformer Formule VBA en Formule normale dans cellule

Bonjour Tonino7, ROGER2327, le fil, le forum


Comme ceci, cela fonctionne

Code:
Sub a()
Dim t
t = Array("chien", "chat","lapin","tortue","staple1600")
Range("A1").FormulaR1C1 = _
"=MATCH(" & Chr(34) & CStr(t(0)) & Chr(34) & ",animaux,0)+MATCH(" & Chr(34) & CStr(t(1)) & Chr(34) & ",animaux,0)"
End Sub
EDITION: une variante plus lisible (et à mon gout) (+ commentaires)
Code:
Sub a_1()
[COLOR=SeaGreen]'Déclarations[/COLOR]
Dim t, f$, fp_1$, fp_2$
[COLOR=SeaGreen]'Array[/COLOR]
t = Array("chien", "chat","lapin","tortue","staple1600")
[COLOR=SeaGreen]'Décomposition de la formule en 2 parties[/COLOR]
fp_1 = "MATCH(" & Chr(34) & CStr(t(0)) & Chr(34) & ",animaux,0)"
fp_2 = "MATCH(" & Chr(34) & CStr(t(1)) & Chr(34) & ",animaux,0)"
[COLOR=SeaGreen]'création de la formule par concaténation[/COLOR]
f = "=" & fp_1 & "+" & fp_2
[COLOR=SeaGreen]'insertion de la formule en A1[/COLOR]
Range("A1").FormulaR1C1 = f
End Sub
 
Dernière édition:
Re : Transformer Formule VBA en Formule normale dans cellule



Un grand MERCI ! je n'ai pas repris toute la formule mais uniquement le coup du chr(34) ....
petite question : en français, ça signifie quoi le chr(34) ?
Une de mes craintes, c'est que ce ne soit pas reconnu par toutes les versions d'excel
 
Re : Transformer Formule VBA en Formule normale dans cellule

Re


Chr(34) -> "

Pour plus aller dans l'aide de VBA
ALT+F11, puis F1
ou sur le net

Chr pour Character

Je te laisse traduire en français 😉
 
- 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
17
Affichages
2 K
Réponses
17
Affichages
2 K
J
  • Résolu(e)
Réponses
2
Affichages
589
JeromeR63
J
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…