Formule matricielle longue et VBA

Imon

XLDnaute Nouveau
Bonjour à tous,

Je souhaite écrire un formule matricielle longue via vba (qui se fera par la suite à la chaine, donc non gérable avec des modifs manuelles de la formule). Ayant fait mes recherches j'ai trouvé une méthode pour écrire une formule matricielle de plus de 255 caractères :
Exemple dans la langue de Sherlock Holmes (Shakespeare c'est trop cliché)

Cependant je n'arrive pas à la faire fonctionner chez moi. En effet, lors de l'insertion de la deuxième partie de la formule, celle-ci n'est pas reconnue, et dans le meilleur des cas est insérée comme du texte au milieu de la formule.
(plus d'exemples dans les commentaires du fichier joint)

En vous remerciant du temps que vous pourrez me consacrer.

Simon

PS: ma formule matricielle contient des "SI" en pagaille, je m'en excuse je ne suis pas familier avec "index" et "equiv". Mais une écriture éclatée de la formule est fournie pour être plus lisible.
PS2 : en principe le code et les formules fonctionnent sous 2003/2007/2010.
 

Pièces jointes

  • exemple.xls
    76.5 KB · Affichages: 87
  • exemple.xls
    76.5 KB · Affichages: 93
  • exemple.xls
    76.5 KB · Affichages: 101
Dernière édition:

Imon

XLDnaute Nouveau
Re : Formule matricielle longue et VBA

N'ayant toujours pas réussi a avancé, je me suis mis à essayer en rentrant la formule normalement et en validant par sendkey, mais pas de réussite de ce coté là non plus. Je n'arrive même pas à faire marcher le sendkey (même si je sais que ce n'est pas une bonne solution). D'ailleur attention : dans l'aide office en français que j'ai (sous 2010), les touches associées à ALT et MAJ sont inversées. La bonne association est "+" pour MAJ, et "%" pour ALT (vérifié par des essais).

Selon ce que j'ai trouvé ces 3 lignes suffiraient :
Code:
Range("K20").FormulaR1C1 = "=SUM(R3C2:R5C2,R6C2:R9C2)" 'ou n'importe quelle autre formule
Range("K20").Select
Application.SendKeys ("^(+({ENTER}))"), (True)
Mais ça marche pas, il ne reconnait pas l'association de touche, alors que individuellement ou en ctr-maj (par exemple "^+l" qui crée une liste déroulante) ça marche.

Si vous avez des idées, je suis toujours intérésé, quel que soit la méthode :
Méthode 1 : Découpage de la formule
Méthode 2 : Utilisation de sendkey
Méthode 3 : quelquechose que vous pensez qui peut marcher
 
Dernière édition:

Misange

XLDnaute Barbatruc
Re : Formule matricielle longue et VBA

Bonjour

Plutot que de nous expliquer ce qui ne marche pas, ce serait mieux de nous expliquer ce que tu veux :)
Tu m'as l'air de te lancer dans tes trucs hyper compliqués alors que tu sembles avoir la bonne formule sur la feuille.
Moi ce que je ne comprends pas c'est ce que tu cherches :
04/01/2011 400 car 0<2000-1600<500 d'ou sortent les 2000 ?
 

Imon

XLDnaute Nouveau
Re : Formule matricielle longue et VBA

Bonjour Misange, et merci de te pencher sur mon problème.

Cependant et regardant 10s de plus mon fichier tu aurait vu les explications dans le fichier joint. Certe la disposition n'est pas optimal, mai la première ligne du fichier indique en gras de regarder "sous" la zone de calcul pour obtenir les infos (ligne 25).

Dans l'exemple que tu as recopié, le "2000" viens de la fréquence de contrôle (en évidence au milieu du fichier). Le calcul se fait en fonction des dates rentrées dans la période, et si le résultat est entre 0 et 500 il s'affiche, ce qui est le cas pour l'exemple de la date du 04/01.

Enfin, comme expliqué dans le premier post, la formule en elle même fonctionne. C'est en essayant de l'écrive via VBA qu'une partie ce celle-ci est considérée comme du texte et de fait ne marche plus.

En espérant avoir donné assez d'infos cette fois. N'hésitez pas a demandez des précisions et éclaircissements si elle n'y sont pas.
 

Discussions similaires

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 811
dernier inscrit
caroline29260