Insertion d'une formule, le texte est modifié [Résolu][VBA][Excel] - VB/VBA/VBS - Programmation
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
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).
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.
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.
Merci pour ton aide.
Marsh Posté le 05-04-2006 à 21:21:01
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 ?
Marsh Posté le 06-04-2006 à 09:53:15
Dans tes options Excel est-ce que l'option de calcul automatique est activée ?
Marsh Posté le 06-04-2006 à 10:12:34
(nb : je confirme le fait qu'il faut mettre IF et non pas SI ..)
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.
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!" ?
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...
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.
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.
Merci grace a vous tous cela commence a prendre forme.
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 :
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