OVH Cloud OVH Cloud

Problème de formules liées à une macro (#N/A)

3 réponses
Avatar
Débutant_en_Difficulté
Bonjour,

J'ai créé une boite de dialogue qui remplace simplement des données dans
plusieurs feuilles excel.
En l'occurrence, la possibilité de rentrer des années.
Cela donne :

Private Sub TextBox4_Change()
Sheets("TF").Select
Range("C21").Select
ActiveCell.FormulaR1C1 = TextBox4

... (etc , pour d'autres cases)

Les valeurs souhaitées apparaissent bien dans les cases.

Cependant, des formules sont liées aux chiffres qui apparaissent
==> du type : =SI(C21="";"";RECHERCHEV(C21;taux;3))

Ces formules sont justes...
Mais quand je saisi les chiffres dans la boite de dialogue, que le chiffre
en question est reporté dans la case (C21 dans mon exemple), la cellule avec
la formule liée à C21 inscrit : #N/A

Il faut que je double-clique sur la cellule C21, que j'appuie sur Entrer
pour que la formule s'active !

Ma question est : comment "simuler" Entrer ou tout du moins valider la
saisie du chiffre dans C21 par une macro pour que les formules liées
s'activent ?!

Merci beaucoup pour vos réponses ! Je sais que ça dois être assez évident,
mais je bloque !

3 réponses

Avatar
X
Bonjour,

Tu as un NG Excel fr où ils sont spécialisés dans ce genre de problème,
tu peux aussi leur demander...

------
Site logiciels
http://irolog.free.fr
Mail
http://irolog.free.fr/ecrire/index.htm
Site perso
http://irolog.free.fr/joe/index.htm
Principe d'utilisation des news Groups
http://support.microsoft.com/directory/worldwide/fr/newsgroup/regles.htm
------------------------------------------------------------------------------------
"Débutant_en_Difficulté" <Débutant_en_Difficulté@discussions.microsoft.com>
a écrit dans le message de news:

Bonjour,

J'ai créé une boite de dialogue qui remplace simplement des données dans
plusieurs feuilles excel.
En l'occurrence, la possibilité de rentrer des années.
Cela donne :

Private Sub TextBox4_Change()
Sheets("TF").Select
Range("C21").Select
ActiveCell.FormulaR1C1 = TextBox4

... (etc , pour d'autres cases)

Les valeurs souhaitées apparaissent bien dans les cases.

Cependant, des formules sont liées aux chiffres qui apparaissent
==> du type : =SI(C21="";"";RECHERCHEV(C21;taux;3))

Ces formules sont justes...
Mais quand je saisi les chiffres dans la boite de dialogue, que le chiffre
en question est reporté dans la case (C21 dans mon exemple), la cellule
avec
la formule liée à C21 inscrit : #N/A

Il faut que je double-clique sur la cellule C21, que j'appuie sur Entrer
pour que la formule s'active !

Ma question est : comment "simuler" Entrer ou tout du moins valider la
saisie du chiffre dans C21 par une macro pour que les formules liées
s'activent ?!

Merci beaucoup pour vos réponses ! Je sais que ça dois être assez évident,
mais je bloque !



Avatar
Gloops
(calcul qui ne s'effectue qu'en validant à la main, dans une feuille Excel)

Bonjour,

Il semble que les calculs automatiques ne soient pas activés, voir dans
les options d'Excel, menu Outils.
Avatar
bayosky
Dans le message ,
Débutant_en_Difficulté
<Débutant_en_Difficulté@discussions.microsoft.com> a écrit :
Bonjour,




Private Sub TextBox4_Change()
Sheets("TF").Select
Range("C21").Select
ActiveCell.FormulaR1C1 = TextBox4



Sheets("TF").Range("C21").FormulaR1C1 = TexBox4.Text

devrait donner la même chose sans modifier le focus ...
C'est donc mieux.
Si qq clique qqpart durant l'exécution
l'objet actif change
et ta macro plante...

... (etc , pour d'autres cases)



Remplace FormulaR1C1 par FormulaLocal et utilise les formules
"normales" comme si tu étais dans la feuille ...

Exemple :

Sheets("F1").Range("A1").FormulaLocal="4"
Sheets("F2").Range("A1").FormulaLocal="ñ!A1+12"
Sheets("F2").Range("C2").FormulaLocal="¡+12"

donne directement les résultats attendus ...

A+

HB