Formule Matricielle en VBA

Signaler
Messages postés
9
Date d'inscription
vendredi 3 septembre 2010
Statut
Membre
Dernière intervention
19 août 2011
-
Messages postés
9
Date d'inscription
vendredi 3 septembre 2010
Statut
Membre
Dernière intervention
19 août 2011
-
Bonjour,


Je ne sais si je suis au bon endroit dans le forum...mais si une petite ou grande ame charitable pouvait jeter un oeil a mon problème

Voila j'essaie sous Excel 2003 en VBA de remplir une cellule avec une formule matricielle Index :
INDEX(Fraude_en_attente!$G$1:$G$65000;MAX(SI((Synthese_fichier_client!F2Fraude_en_attente!$C$1:$C$65000)*(Synthese_fichier_client!C2=Fraude_en_attente!$E$1:$E$65000);LIGNE(Fraude_en_attente!$G$1:$G$65000);0)))

J'arrive à remplir la cellule mais je n'arrive pas à lui imposer le ctrl + maj + enter (pavé num).

J'ai essayé le formula.array...sans grang succès...qq'un aurait une idée ??

Par avance merci !!

Cordialement


Pimousse

9 réponses

Messages postés
14812
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
25 juillet 2021
156
Bonjour,

As-tu enregistré l'action avec l'enregistreur de macro ?
ça donne quoi ?

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS et aussi ce lien[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
Messages postés
9
Date d'inscription
vendredi 3 septembre 2010
Statut
Membre
Dernière intervention
19 août 2011

Avec l'enregistreur, ca me donne le code pour inscrire la formule dans la cellule mais rien pour le ctrl maj enter...

J'ai essayé d'autre part application sendkey pour reproduire le ctrl.. mais ca ne marche pas non plus...la suite de touche doit se faire à la fin de la formule et non en se positionnant simplement sur la cellule...

roooooo
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Bonjour,
Tu dis que tu veux écrire ta formule depuis VBA.
Que viendrait alors faire là un CTRL-MAJ-ENTER ?
C'est depuis le code VBA, que tu dois attribuer ta formule aux cellules de ton choix, pas depuis ta feuille Excel !


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne intallée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
9
Date d'inscription
vendredi 3 septembre 2010
Statut
Membre
Dernière intervention
19 août 2011

Bien j'ai réussi a écrire ma formule depuis VBA mais celle ci ne fonctionne qu'avec les { } qui sont générés par le ctrl maj enter qd on le fait "manuellement" directement par excel.

Il faudrait peut etre que je mette un exemple rapide en pièce jointe... je vais en cree un vite fait.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Montre plutôt le code VBA que tu as écrit (en commentant les lignes concernées).


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne intallée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
9
Date d'inscription
vendredi 3 septembre 2010
Statut
Membre
Dernière intervention
19 août 2011

Fichier test
Voici un petit fichier test
Dans l'onglet "base"..ma base de donnée.
Dans l'onglet "MAJ" mes données mises à jour.
Je souhaite dans ce 2eme onglet ajouter en colonne D ma formule matricielle qui récupère la colonne C de mon onglet "base" en respectant les 2 conditions : montant et num chèque identique.
Messages postés
9
Date d'inscription
vendredi 3 septembre 2010
Statut
Membre
Dernière intervention
19 août 2011

oh bah en VBA ca donne un truc du style :

range("D2") = "=INDEX(Base!$C$1:$C$65000,MAX(if((MAJ!A2=Base!$A$1:$A$65000)*(MAJ!B2=Base!$B$1:$B$65000),ROW(Base!$C$1:$C$65000),0)))"

mais ca marche pas il manque la formule matricielle...
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
ouvre ton aide en ligne sur les mots Formula et Formulalocal.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne intallée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
9
Date d'inscription
vendredi 3 septembre 2010
Statut
Membre
Dernière intervention
19 août 2011

formula et formula array ca marche pas avec la formule index...je vais zieuter la formulalocal ^^ mirci