[Résolu][VBA][Excel] Insertion d'une formule, le texte est modifié

Insertion d'une formule, le texte est modifié [Résolu][VBA][Excel] - VB/VBA/VBS - Programmation

Marsh Posté le 05-04-2006 à 12:15:06    

Bonjour, j'ai regarde les sujets correspondants mais je n'ai pas trouve la solution.
 
Je veux mettre cette formule dans une case : =SI(H9>0;calcul_def!W4;"" )
 
Je fabrique donc ma String, puis j'assigne :

Code :
  1. formule = "=SI(RC[-9]>0,calcul_def!W" & _
  2.             ligne - 5 & "," & Chr(34) & Chr(34) & " )"
  3.         MaFeuille.Cells(ligne, 17).FormulaR1C1 = formule


Or quand je regarde dans ma feuille Excel, la formule n'est pas exactement comme la chaine : des ' ont etes ajoutes autour de W4 :
 
=SI(H9>0;calcul_def!'W4';"" )
 
Et bien sur il y a #NOM? dans la case correspondante.
 
Si je mets des ; a la place des , j'ai carrement une erreur a l'execution.
 
Que faire ?


Message édité par bclinton le 06-04-2006 à 13:11:39
Reply

Marsh Posté le 05-04-2006 à 12:15:06   

Reply

Marsh Posté le 05-04-2006 à 12:28:15    

La solution consiste à remplacer ".FormulaR1C1" par ".Formula",
ou bien à remplacer "W" par "23".
 
En effet R1C1 signifie Row en digit et Column en digit. Par ailleurs, W est le 23ème caratère de l'alphabet.
 
Voir des exemples pour Formula et FormulaR1CA à http://bidou.developpez.com/faqvba/?page=1.3.3

Reply

Marsh Posté le 05-04-2006 à 13:06:45    

J'avais deja essaye Formula, FormulaLocal et meme IF a la place de SI, mais rien a faire.
 
Comment remplacer W par 23 ?
W4 => 234, non y'a un truc qui m'echappe (sorry, debutant inside).

Reply

Marsh Posté le 05-04-2006 à 13:09:56    

Avec FormulaR1C1, il faut écrire "R4C23" au lieu de "W4". Mais je ne sais pas si ça marche avec le nom d'une feuille en préfixe.


Message édité par olivthill le 05-04-2006 à 13:11:08
Reply

Marsh Posté le 05-04-2006 à 13:15:59    

R4C23 devient $W$4
 
Du coup ca deconne.
 
[edit] J'ai dit une grosse connerie. En fait avec $W$4 ca marche mais il faut que je clique sur la cellule pour lui mettre un coup de pied au cul et que ca reagisse.  :heink:  
 
Merci pour ton aide.


Message édité par bclinton le 05-04-2006 à 13:30:26
Reply

Marsh Posté le 05-04-2006 à 21:21:01    

:calimero: UP !
 
Les formules sont justes.
Mais le #NOM? reste dans la cellule.
Pour qu'il disparaisse et qu'il laisse place a la valeur calculée il faut que je double-clique dessus puis que je déselectionne la cellule.
 
Comment faire pour "donner un coup de pied au cul" a la cellule afin qu'elle affiche le résultat du calcul ?


Message édité par bclinton le 05-04-2006 à 21:21:30
Reply

Marsh Posté le 06-04-2006 à 09:53:15    

Dans tes options Excel est-ce que l'option de calcul automatique est activée ?

Reply

Marsh Posté le 06-04-2006 à 10:12:34    

(nb : je confirme le fait qu'il faut mettre IF et non pas SI ..)

Reply

Marsh Posté le 06-04-2006 à 11:45:08    

tegu > Le calcul auto est activé, meme en utilisant F9 ca ne bouge pas.
 
Leon > meme les formules ne contenant pas SI sont en #NOM? : par exemple des formules avec COS, RACINE, ATAN.
 
En revanche les trucs tres cons genre =+G4-C4 fonctionnent OK.

Reply

Marsh Posté le 06-04-2006 à 12:27:32    

je travail en ce moment sur l'insertion dans une page active de formules Excel a partir de VBA.  
au final j'obtient, dans VBA:
formule = "=IF(ISERROR(SUM('C:\essai\[fichier_essai.xls]onglet_test'!R9C8:R11C8)/('C:\essai\[fichier_essai.xls]onglet_test'!R7C12)),"erreur","ok" )"
lorsque j'inscris cette formule dans la cellule voulue (moi j utilise des plage de cellule, type RANGE, mais ca marche aussi avec formula...) ca marche direct.
 
pour toi, j écrirais :  
 
formule = "=IF(R7C8>0,""ok"",""pas ok"" )"
range("A1" ).select
selection = formule
 
a arranger selon ta sauce...  
au fait, c quoi "calcul_def!" ?
 

Reply

Marsh Posté le 06-04-2006 à 12:27:32   

Reply

Marsh Posté le 06-04-2006 à 12:30:11    

fuck ca foire a cause des smileys ..
je réécris la fin :  
...etc...  pas ok"" ) "
range ("A1" ) .select   ...etc...
 
:)

Reply

Marsh Posté le 06-04-2006 à 13:03:26    

Calcul_def!W4 ca veut dire la cellule W4 de la feuille "Calcul_def"
 
Je vais encore esayer avec IF car mon collegue pense aussi que ca vient de la.

Reply

Marsh Posté le 06-04-2006 à 13:10:49    

En effet cela venait de SI au lieu de IF et RACINE au lieu de SQRT. :jap:
 
Merci grace a vous tous cela commence a prendre forme.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed