Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2570 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Probleme avec la propriété FormulaArray sous VBA (Excel)

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme avec la propriété FormulaArray sous VBA (Excel)

n°454044
pulley60
Posté le 10-07-2003 à 19:12:26  profilanswer
 

Bonjour à tous. Voila je travaille en ce moment sur une appli Excel que je passe en VB.Mon probleme est sous Excel, il y a une fonction qui utilise la propriété FormulaArray de la classe Range afin d'afficher le résultat d'un calcul matriciel. Quand j'execute cette fonction depuis la page de code VBA tout se passe bien, le calcul s'effectue correctement, alors que quand je lance la fonction depuis un menu qui a été créé et qui pointe sur la fonction, lors de l'utilisation de la propriété FormulaArray, il bloque et me sors l'erreur "Impossible de définir la propriété FormulaArray de la classe Range". Pourquoi es ce que cela marceh dans un cas et pas dans l'autre alors que c'est la même fonction qui est utilisée??? cela fait 3 jours que je m'arrache les cheveux la dessus, j'y comprend rien.  
Sinon je sais que pour définir la formule d'un cellule comme calcul matriciel, on peut utiliser la combinaison de touches Alt+Maj+Enter, es ce que l'on peut le définir en passant par le code?? Merci beaucoup d'avance à toutes les bonnes ames qui se pencheront sur ma question pour m'aider!

mood
Publicité
Posté le 10-07-2003 à 19:12:26  profilanswer
 

n°455657
docteur le​ster
Posté le 11-07-2003 à 18:44:04  profilanswer
 

pulley60 a écrit :

Bonjour à tous. Voila je travaille en ce moment sur une appli Excel que je passe en VB.Mon probleme est sous Excel, il y a une fonction qui utilise la propriété FormulaArray de la classe Range afin d'afficher le résultat d'un calcul matriciel. Quand j'execute cette fonction depuis la page de code VBA tout se passe bien, le calcul s'effectue correctement, alors que quand je lance la fonction depuis un menu qui a été créé et qui pointe sur la fonction, lors de l'utilisation de la propriété FormulaArray, il bloque et me sors l'erreur "Impossible de définir la propriété FormulaArray de la classe Range". Pourquoi es ce que cela marceh dans un cas et pas dans l'autre alors que c'est la même fonction qui est utilisée??? cela fait 3 jours que je m'arrache les cheveux la dessus, j'y comprend rien.  
Sinon je sais que pour définir la formule d'un cellule comme calcul matriciel, on peut utiliser la combinaison de touches Alt+Maj+Enter, es ce que l'on peut le définir en passant par le code?? Merci beaucoup d'avance à toutes les bonnes ames qui se pencheront sur ma question pour m'aider!


as tu mis : application .formulaarray   ?

n°455913
pulley60
Posté le 12-07-2003 à 10:25:34  profilanswer
 

Nan j'utilise la propriete range pour définir une plage de cellule, puis je meet : PlageNommé.FormulaArray. Et c'est la qu'il me met "impossible de definir la propriete FormulaArray de la classe Range".

n°900647
MCH
Posté le 17-11-2004 à 14:25:02  profilanswer
 

Je rencontre exactement le meme probleme !!!
J'effectue le remplissage automatique des mes cellules d'un calcul de matricielle grace a cette fonction en macro.
Si j'utilise la macro, la formule ne fonctionne pas, si je tappe ma formule directement dans une cellule, celle ci s'effectue o_O !
En rapport direct ou pas, j'ai remarque que si je retire la division par mille que j'opere sur l'ensemble de ma formule, ma macro fonctionne ?!
J'ai beau retourner ciel et terre je ne trouve pas l'explication a mon probleme :/.
Si tu trouves une solution pulley60, je suis preneur ^^.
 
edit : le code erreur : Erreur d'execution '1004'.


Message édité par MCH le 17-11-2004 à 14:29:04
n°902757
Profil sup​primé
Posté le 19-11-2004 à 13:12:21  answer
 

Essayez avec les notations anglaises des formules ainsi que les R1C1 a la place des A1
 
Range("E4:E9" ).FormulaArray = "=SOMME(B4:B9*C4:C9)" ne fonctionnera pas
 
Range("E4:E9" ).FormulaArray = "=SUM(R4C2:R9C2*R4C3:R9C3)" fonctionnera


Message édité par Profil supprimé le 19-11-2004 à 13:15:39
n°904790
MCH
Posté le 22-11-2004 à 16:06:44  profilanswer
 

J'utilise bien les commandes en anglais et voici la formule sur laquelle s'arrete ma macro :
 
Range("W3" ).FormulaArray = _
        "=SUM(IF($A3=[customerorders.xls]CustomerOrders.rpt!$A$1:$A$" & ve & _
        ",IF([customerorders.xls]CustomerOrders.rpt!$B$1:$B$" & ve & ">I$2" & _
        ",IF([customerorders.xls]CustomerOrders.rpt!$B$1:$B$" & ve & "<J$2+1" & _
        ",[customerorders.xls]CustomerOrders.rpt!$E$1:$E$" & ve & ",0))))/1000"
 
Si quelqu'un a une idee, je suis preneur !
 
edit : je precise que si j'enleve ma derniere operation, a savoir la division par 1000, la macro s'execute bien o_O !


Message édité par MCH le 22-11-2004 à 16:08:41
n°904840
Profil sup​primé
Posté le 22-11-2004 à 17:05:21  answer
 

avec les variables, ca ne te fait pas une formule de plus de 256 caractéres ?

n°906355
MCH
Posté le 24-11-2004 à 10:27:35  profilanswer
 

Hummm, si j'en compte 353 mais pourquoi cette question ? Existe t il une limitation ???

n°906471
Profil sup​primé
Posté le 24-11-2004 à 12:39:32  answer
 

je le pensait , mais en fait non :
 
excel95 : 255 caractéres maxi et 1024 pour une formule
 
excel2000: 32000 caractéres maxi
 
ton souci se trouve peut etre dans les conditions IF que tu as mis dans la formule  
 
Obtient tu un chiffre lorsque tu enleve "/1000" ? il se peut que tes condition "IF" t'amene a faire une division qui n'a pas de sens pour Excel.
 
Essaye en remplacant "/1000" par "/1" ou meme par "*1" ou "+1" pour voir si c'est la division qui géne ou le fait de faire une operation arithmetique en fait de FormulaArray


Message édité par Profil supprimé le 24-11-2004 à 12:45:39
n°911070
MCH
Posté le 30-11-2004 à 10:58:57  profilanswer
 

Bonne idee !
Et oui, le fait d'enlever ma division cela debloque l'operation, c'est ca qui me perd o_O ! C'est pas coherent ^^.
Je vais essayer tout ca :).


Message édité par MCH le 30-11-2004 à 10:59:59

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Probleme avec la propriété FormulaArray sous VBA (Excel)

 

Sujets relatifs
[VBA, access] mettre autre chose qu'un fichier office en 'object'[C++\VBA] Communication C++ VBA
Problème avec Winsock pour l'envoi de mailMettre une valeur dans un champ excel ...
Excel: comment lier une combobox aux alias ODBC?[ASP] Problème de cache IE, parade pr forcer le dl d'un fichier sur le
Problème de retour à la ligne[VBA] Executer une macro à l ouverture d'un fichier excel [resolu]
[Access/SQL] Problème de tranche (de pain de mie !!) 
Plus de sujets relatifs à : Probleme avec la propriété FormulaArray sous VBA (Excel)


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR