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

[Résolu] Inserer une formule matricielle par vba

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

Lone-wolf

XLDnaute Barbatruc
Bonjour le Forum,

comment inserer ces formules en matricielle par VBA.

Code:
form1 = "=SI(SI(ESTERREUR(EQUIV(J1&J2;B2:B5000&C2:C5000;0));VRAI;INDEX(D2:D5000;EQUIV(J1&J2;B2:B5000&C2:C5000;0))=0);"""";INDEX(D2:D5000;EQUIV(J1&J2;B2:B5000&C2:C5000;0)))"

form2 = "=SI(SI(ESTERREUR(EQUIV(J1&J2;B2:B5000&C2:C5000;0));VRAI;INDEX(E2:E5000;EQUIV(J1&J2;B2:B5000&C2:C5000;0))=0);"""";INDEX(E2:E5000;EQUIV(J1&J2;B2:B5000&C2:C5000;0)))"

.Range("j3").FormulaArray = form1
.Range("j4").FormulaArray = form2

j'ai essaié comme ça, d'après un exemple sur le Forum, mais elles s'incrivent en texte au lieu de formule.


A+ 😎
 
Dernière édition:
Re : Inserer une formule matricielle par vba

Bonjour Lone-wolf,

Avec l'enregistreur de macros j'obtiens ça pour la première formule (en sélectionnant J3 d'abord) :
Code:
Selection.FormulaArray = _
        "=IF(IF(ISERROR(MATCH(RC&R[1]C,R[1]C[-8]:R[4999]C[-8]&R[1]C[-7]:R[4999]C[-7],0)),TRUE,INDEX(R[1]C[-6]:R[4999]C[-6],MATCH(RC&R[1]C,R[1]C[-8]:R[4999]C[-8]&R[1]C[-7]:R[4999]C[-7],0))=0),"""""""",INDEX(R[1]C[-6]:R[4999]C[-6],MATCH(RC&R[1]C,R[1]C[-8]:R[4999]C[-8]&R[1]C[-7]:R[4999]C[-7],0)))"

A toi de voir et d'adapter. La clé c'est qu'en VBA il faut utiliser les fonctions en anglais.
 
Re : Inserer une formule matricielle par vba

Bonsour®
il faut ecrire form1 et form2 au format US
form1="IF(IF(ISERROR(MATCH(J1&J2,B2:B5000&C2:C5000,0)),TRUE,INDEX(D2😀5000,MATCH(J1&J2,B2:B5000&C2:C5000,0))=0),"""",INDEX(D2😀5000,MATCH(J1&J2,B2:B5000&C2:C5000,0)))"

!!! les ";" sont remplacés par ","
 
Dernière édition:
Re : Inserer une formule matricielle par vba

Bonjour jmps, Modeste geedee 😀

@jmps: j'ai essaié avec l'enregistreur, mais ça ne marche pas. J'obtien l'erreur 1004 : Impossible de définir la propriété FormulaArray de la classe Range.

@Modeste geedee : c'est toujour pareil.

Sinon, comment simuler l'activation des touches Ctrl+Shift+Enter??

A+ 😎
 
Dernière édition:
Re : Inserer une formule matricielle par vba

Bonsour®

😕 quoi c'est toujours pareil ...
as-tu verifié :
- si la formule fonctionne correctement quand tu la saisie manuellement en J3 ou J4
- le format initial de j3 ou J4 (standard)
- enlevé le "ESTERREUR" afin de voir justement s'il y a erreur et son type
 
Re : Inserer une formule matricielle par vba

Bonsoir Modeste,

oui, j'ai tout essaié, mias rien à faire. Alors j'ai trouvé une parade. J'ai décalé les deux formules de quelques cellules et dans la macro inscrite dans la feuille j'ai écrit : Range("j3").value = Range("j51").value idem pour J4.

Je cherchais à recopier les formules, parce que les lignes 1 à 6 sont éffacés sous condition.

La solution était tout simple et non seulement je me suis cassé la tête avec ça, mais je vous ai embêtés pour rien, désolé 😱 .


Très bon weekend à tous. 😎
 
- 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
23
Affichages
668
Réponses
10
Affichages
731
Réponses
3
Affichages
903
Réponses
9
Affichages
887
D
Réponses
2
Affichages
947
D
O
Réponses
4
Affichages
1 K
Olocsob
O
Réponses
1
Affichages
1 K
A
Réponses
8
Affichages
1 K
anthony183
A
F
Réponses
8
Affichages
3 K
F
S
Réponses
4
Affichages
1 K
spawn78
S
O
Réponses
4
Affichages
2 K
Optimal
O
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…