simplifier les formules

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

L

ludo

Guest
bonjour,j'aimerais simplifier mes formules en vba mais je ne vois pas comment faire. Par exemple, plutot que de recopier plusieurs fois le morceau:

CONCATENATE(""blablabla "",RIGHT(R[-17]C[5])

dans une formule,le mieux serait de lui attribuer un nom.
j'ai essayé de faire :

Set Texte = CONCATENATE(""blablabla "",RIGHT(R[-17]C[5])
mais ça ne marche pas.
merci,si quelqu'un peut me débloquer.
Ludo.
 
exact et merci pour ton message;
la bonne formule est

CONCATENATE(""journée "",RIGHT(R[-20]C[5],LEN(R[-20]C[5])-1)),

mais en fait cela ne résout pas mon dilemme :
par souci de simplification je voudrais remplacer :

range("k7").FormulaArray = _
"=MATCH(CONCATENATE(""journée "",RIGHT(R[-20]C[5],LEN(R[-20]C [5])-1)),Feuil2!R[-23]C2:R[816]C2,0)"


par

range("k7").FormulaArray = _
"=MATCH(Texte,Feuil2!R[-23]C2:R[816]C2,0)"

en ayant préalablement posé :
texte=CONCATENATE(""journée "",RIGHT(R[-20]C[5],LEN(R[-20]C[5])-1))

Mais comment puis-je définir ainsi Texte car VBE refuse de valider cette definition
Suis-je sur la bonne piste en posant :
Set Texte=CONCATENATE(""journée "",RIGHT(R[-20]C[5],LEN(R[-20]C[5])-1))
?

je ne vois pas d'issue,et pourtant il y a certainement un moyen de definir et réutiliser un tronçon de formule en vba.

@+,
Ludo.
 
Salut,

là, je crois que ton adresse R[-20]C[5] n'est pas bonne

essaies quelquechose du style

Sub test1()
Set T = Feuil2.[I51] 'à adapter
Set Zone = Feuil2.Range("B1:B850")'à adapter
Range("k7").FormulaArray = _
"=MATCH(""journée "" & RIGHT(" & T.Address & ",LEN(" & T.Address & ")-1)," & Zone.Address & ",0)"
End Sub

ou

Sub test2()
T = Feuil2.[I51].Address'à adapter
Zone = Feuil2.Range("B1:B850").Address'à adapter
Range("k7").FormulaArray = _
"=MATCH(""journée "" & RIGHT(" & T & ",LEN(" & T & ")-1)," & Zone & ",0)"
End Sub

et est tu sûr que tu as besoin d'une formule matricielle. si ce n'est pas le cas pose formula plutot que formulaarray.

@+
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
11
Affichages
843
Réponses
2
Affichages
777
Retour