[VBA Excel] Problème insertion de formule

Problème insertion de formule [VBA Excel] - VB/VBA/VBS - Programmation

Marsh Posté le 20-06-2003 à 11:17:44    

J'essaye d'insérer une formule avec un SI via ma macro visual basic, mais cela plante systématiquement en me disant qu'il y a une erreur dans ma formule...
 
Ma syntaxe est la suivante:
 
 
formule3 = "=SI(G" & bligne - 1 & "=0;1;2)"
Cells(bligne - 1, bcolonne + 6).Formula = formule3
 
Par un petit Msgbox je vois bien que la formule est nickel, mais Excel me bloque en me renvoyant une erreur 1004.
 
Si j'insère une formule quelconque sans le SI, cela marche nickel, donc le problème vient de l'interprétation du SI.
 
Un pro du visual basic aurait il une idée?
 
Quelqu'un a une idée?

Reply

Marsh Posté le 20-06-2003 à 11:17:44   

Reply

Marsh Posté le 20-06-2003 à 11:24:13    

bligne - 1 est un numérique.
il faut le transformer en texte avant de le concaténer

Reply

Marsh Posté le 20-06-2003 à 11:40:06    

J'essaye mais sur les formules que je rentre sans instruction Si cela marche!

Reply

Marsh Posté le 20-06-2003 à 11:52:58    

Je n'ai pas reussi en convertissant en texte avant la concaténation. Et pour éliminer le problème, j'ai fait un essai avec la fonction suivante:
 
formule3 = "=si(G4=0;1;3)"
MsgBox (formule3)
Cells(bligne - 1, bcolonne + 6).Formula = formule3
 
Et bien cela me renvoie toujours l'erreur 1004!
 
 
La formule suivante elle marche nickel:
 
 
 formule1 = "=Achat!G" & aligne & "+Achat!M" & aligne & "+'achat av'!H" & aligne & "+'achat av'!N" & aligne
 
Cells(bligne - 1, bcolonne + 1).Formula = formule1
 
Du coup je suis un peu paumé la....

Reply

Marsh Posté le 20-06-2003 à 12:05:12    

Ah y est j'ai fini de me taper la tête contre les murs...
Execl étant un produit américain, il considère les formules en anglais...
Donc il suffisait de remplacer Formula par FormulaLocal!
 
Sans commentaires sur la convivialité du produit....

Reply

Marsh Posté le 20-06-2003 à 12:11:22    

je suis également arrivé à la même conclusion, mais en rentrant la formule en anglais :
formule3 = "=if(G" & bligne - 1 & "=0,1,2)"
 
A+

Reply

Marsh Posté le 20-06-2003 à 13:45:51    

A+  et merci pour ton aide

Reply

Sujets relatifs:

Leave a Replay

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