OVH Cloud OVH Cloud

saisir dans une cellule une formule généré par programmation

3 réponses
Avatar
Fabien Gouverneur
Bonjour à tous !

Avec un collègue de bureau nous tentons de créer une macro qui saisie dans
une cellule quelconque choisi par rapport à nos besoins, une formule que
nous avons créer de toutes pièces par programmation.

On crée notre chaîne de caractère, comme on le souhaite sous la forme d'une
chaîne de caractères, puis on saisi :
DIM q as string
....
....
....
....
....
cells (x,y) = q
ou q est notre chaîne de caractères du type "=TEXTE($A42;0)", celle-ci a été
totalement construite par des traitements de chaîne de caractères

Le problème est que si on lance cette macro on obtient le message

Erreur d'exécution '1004':
Erreur définie par l'application ou par l'objet.

Est que l'un d'entre vous pourrais nous aider ?
Merci

3 réponses

Avatar
Elliac
Bonjour,

L'erreur 1004 est de type adresse. Vérifier du côté de Cells(x,y)

Camille

"Fabien Gouverneur" wrote:

Bonjour à tous !

Avec un collègue de bureau nous tentons de créer une macro qui saisie dans
une cellule quelconque choisi par rapport à nos besoins, une formule que
nous avons créer de toutes pièces par programmation.

On crée notre chaîne de caractère, comme on le souhaite sous la forme d'une
chaîne de caractères, puis on saisi :
DIM q as string
.....
.....
.....
.....
.....
cells (x,y) = q
ou q est notre chaîne de caractères du type "=TEXTE($A42;0)", celle-ci a été
totalement construite par des traitements de chaîne de caractères

Le problème est que si on lance cette macro on obtient le message

Erreur d'exécution '1004':
Erreur définie par l'application ou par l'objet.

Est que l'un d'entre vous pourrais nous aider ?
Merci





Avatar
Daniel
Bonjour.
Essaie :
Cells(2, 2).FormulaLocal = q
Toutefois, je ne sais pas pourquoi ton code ne fonctionne pas.
Cordialement.
Daniel
"Fabien Gouverneur" a écrit dans le message de news:
4344dc9a$0$21304$
Bonjour à tous !

Avec un collègue de bureau nous tentons de créer une macro qui saisie dans
une cellule quelconque choisi par rapport à nos besoins, une formule que
nous avons créer de toutes pièces par programmation.

On crée notre chaîne de caractère, comme on le souhaite sous la forme
d'une
chaîne de caractères, puis on saisi :
DIM q as string
....
....
....
....
....
cells (x,y) = q
ou q est notre chaîne de caractères du type "=TEXTE($A42;0)", celle-ci a
été
totalement construite par des traitements de chaîne de caractères

Le problème est que si on lance cette macro on obtient le message

Erreur d'exécution '1004':
Erreur définie par l'application ou par l'objet.

Est que l'un d'entre vous pourrais nous aider ?
Merci




Avatar
Modeste
Bonsour®
Fabien Gouverneur wrote:
Avec un collègue de bureau nous tentons de créer une macro qui saisie
dans une cellule quelconque choisi par rapport à nos besoins, une
formule que nous avons créer de toutes pièces par programmation.
cells (x,y) = q
ou q est notre chaîne de caractères du type "=TEXTE($A42;0)",
celle-ci a été totalement construite par des traitements de chaîne de
caractères
Le problème est que si on lance cette macro on obtient le message
Erreur d'exécution '1004':
Erreur définie par l'application ou par l'objet.


de deux chose l'une :
soit l'on veux exactement une formule :
alors la syntaxe est :
cells(x,y).FormulaLocal= q
ou bien
cells(x,y).formula=q dans ce cas la formule q doit respecter la forme US :
Nom de fonction et separateur

soit l'on veux le résultat de la formule
alors la syntaxe est : cells(x,y)= evaluate(q)
dans ce cas la formule q doit respecter impérativement la forme US : Nom de
fonction et separateur

dans l'exemple ci-dessus il y a une erreur
la syntaxe de la fonction TEXTE est :
TEXTE(valeur;format_texte)
devrait donc etre dans ce cas : "=TEXTE($A42;""0"")"
par ailleurs ce qui se trouve en cells(x,y) est un texte que excel doit
interpreter
il faut alors valider la cellule en appuyant sur "Entrer"
ou forcer excel à faire cette evaluation mais dans ce cas il faut respecter
la syntaxe US
en résumé :

Sub Fabien()
[A42] = Now
letexte$ = "=TEXT(A42,""0"")"
MsgBox letexte$, , "1ere façon Formule Syntaxe US, résultat texte"
Cells(3, 4).Value = letexte$
Cells(3, 4).Value = Cells(3, 4)

MsgBox letexte$, , "2eme façon Formule Syntaxe US, résultat texte"
Cells(4, 4).Formula = letexte$

letexte$ = "=TEXTE(A42;""0"")"
MsgBox letexte$, , "3eme façon Formule Syntaxe FR, résultat texte"
Cells(5, 4).FormulaLocal = letexte$

letexte$ = "=TEXT(A42,""0"")"
MsgBox letexte$, , "4eme façon Valeur Syntaxe US, résultat nombre"
Cells(6, 4) = Evaluate(letexte$)

End Sub



--
n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
--
Feed Back
http://viadresse.com/?94912042