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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°1339555
bclinton
ex président
Posté le 05-04-2006 à 12:15:06  profilanswer
 

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
mood
Publicité
Posté le 05-04-2006 à 12:15:06  profilanswer
 

n°1339564
olivthill
Posté le 05-04-2006 à 12:28:15  profilanswer
 

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

n°1339595
bclinton
ex président
Posté le 05-04-2006 à 13:06:45  profilanswer
 

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).

n°1339599
olivthill
Posté le 05-04-2006 à 13:09:56  profilanswer
 

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
n°1339604
bclinton
ex président
Posté le 05-04-2006 à 13:15:59  profilanswer
 

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
n°1340068
bclinton
ex président
Posté le 05-04-2006 à 21:21:01  profilanswer
 

: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
n°1340268
tegu
Posté le 06-04-2006 à 09:53:15  profilanswer
 

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

n°1340279
leon_69
Posté le 06-04-2006 à 10:12:34  profilanswer
 

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

n°1340410
bclinton
ex président
Posté le 06-04-2006 à 11:45:08  profilanswer
 

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.

n°1340463
leon_69
Posté le 06-04-2006 à 12:27:32  profilanswer
 

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!" ?
 

mood
Publicité
Posté le 06-04-2006 à 12:27:32  profilanswer
 

n°1340471
leon_69
Posté le 06-04-2006 à 12:30:11  profilanswer
 

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

n°1340500
bclinton
ex président
Posté le 06-04-2006 à 13:03:26  profilanswer
 

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.

n°1340508
bclinton
ex président
Posté le 06-04-2006 à 13:10:49  profilanswer
 

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.


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

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

 

Sujets relatifs
problème sur excel[Résolu] Problème VS 2005 et Postgresql
[resolu] afficher un text area en fonction d'un select...récuperer un texte sur un site
[Perl] effacer début fichier texte[Résolu] Parser INI
poi peut-il générer des fichiers lisible ac Excel 2003[VBA] Passer un paramêtre dans la fonction
Taille de fichier texte[Resolu] faire attendre un thread sur tous les autres différents
Plus de sujets relatifs à : [Résolu][VBA][Excel] Insertion d'une formule, le texte est modifié


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