Calcul de formule [Résolu]

Signaler
Messages postés
48
Date d'inscription
mardi 28 mars 2006
Statut
Membre
Dernière intervention
22 septembre 2011
-
Messages postés
48
Date d'inscription
mardi 28 mars 2006
Statut
Membre
Dernière intervention
22 septembre 2011
-
Bonjour à tous,

je suis en train d'écrire un code qui sur une feuille génère une formule de calcul, relative à une autre, de cette façon :
MaFeuille.Cells(i, 2).FormulaR1C1 = "=COUNT('" & AutreFeuille & "'!A:A)"
La formule s'écrit sans soucis, sauf que lorsque, par le biais du code, j'ajoute des données dans la colonne A de AutreFeuille, le résultat de la formule reste désespérément à 0. Si manuellement, je rentre dans la cellule, puis revalide avec "entrée", le résultat s'affiche.
Alors j'ai essayé les "application.calculate", "application.volatile", "mafeuille.calculate", mais rien n'y fait.
C'est d'autant plus étrange que j'ai une formule similaire (avec countif) sur une autre feuille qui elle, ne me pose aucun problème
Si quelqu'un à une idée, je prends !
Merci beaucoup d'avance !

Maxime

6 réponses

Messages postés
48
Date d'inscription
mardi 28 mars 2006
Statut
Membre
Dernière intervention
22 septembre 2011

Rebonjour,

je viens en fait de trouver la solution au problème.
Lors de l'écriture de la formule par le code, il ne faut pas mentionner A:A, mais C1. Car si A:A écrit la formule correctement, elle est en revanche juste considérée comme une chaine de caractère. Le C1 (pour indiquer colonne n°1) est donc la bonne façon d'écrire la formule !

Merci pour ton aide, bonne journée !

Maxime
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
229
Bonjour,

je comprends avec peine ce que tu veux dire.
Question : quel est la valeur, à ce moment-là, de Application.screenupdating ?


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
229
et :
sauf que lorsque, par le biais du code, j'ajoute des données dans la colonne A de AutreFeuille, le résultat de la formule reste désespérément à 0

Peut-on voir la/les ligne(s) de code relative(s) à cet ajout par code ?

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
48
Date d'inscription
mardi 28 mars 2006
Statut
Membre
Dernière intervention
22 septembre 2011

Bonjour, et merci pour ta réponse.

je ne connais pas (et donc n'utilise pas) la fonction Application.screenupdating.
l'ajout de données sur autre feuille est très simple, c'est du :
Sheets.Item(NomdeFeuille).Cells(i, 4).Value = valeur
avec le i qui est incrémenté dans une boucle.
je précise que dans la colonne A, seulement des chiffres sont insérés (au format excele "nombre").
Peut être est-ce un peu plus clair ?
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
229
Alors ajoute après :
Sheets.Item(NomdeFeuille).Cells(i, 4).Value = valeur 

ceci :
MaFeuille.Cells(i, 2).value =  MaFeuille.Cells(i, 2).value

Aussi étonnant que cela puisse te paraître, en prenant soin de ce que Mafeuille soit la feuille qui contient les formules .
Essaye et dis

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
48
Date d'inscription
mardi 28 mars 2006
Statut
Membre
Dernière intervention
22 septembre 2011

Je viens d'essayer la méthode que tu me proposais, mais le résultat est le même. Cela vient donc bien de la façon d'écrire la formule.
Merci cependant de la combine, ça peut être utile dans d'autre cas, je n'y avais jamais pensé !
Bonne fin de journée !
Maxime