Forcer le calcul d'une cellule excel avec vb

Résolu
cybergut Messages postés 5 Date d'inscription lundi 30 août 2010 Statut Membre Dernière intervention 13 septembre 2010 - 9 sept. 2010 à 17:14
cybergut Messages postés 5 Date d'inscription lundi 30 août 2010 Statut Membre Dernière intervention 13 septembre 2010 - 13 sept. 2010 à 21:06
Bonjour à tous,
Je suis entrain de concevoir des formulaires vb pour remplir un fichier excel, et je rencontré un problème pour forcer le calcul d'une cellule.

Mon code:
ActiveCell.Offset(0, -2).Formula = "=RECHERCHEV" & ChrW(40) & "D" & ActiveCell.Row & ",Magasins" & ChrW(33) & "A" & ChrW(58) & "B,2" & ChrW(41)

La formule s'écrit bien dans la cellule, mais si je ne fais pas F2+entrer, elle afiche #NOM?
Comment faire pour forcer le calcul?

J'ai bien évidement essayer calculate qui ne fonctionne pas et directement sur le classeur la touche F9 ne fonctionne pas non plus.

Merci d'avance.

7 réponses

foliv57 Messages postés 420 Date d'inscription vendredi 17 novembre 2006 Statut Membre Dernière intervention 15 juillet 2014 9
9 sept. 2010 à 17:18
Bonjour,

Essayez avec "FormulaLocal" à la place de "Formula"
3
cybergut Messages postés 5 Date d'inscription lundi 30 août 2010 Statut Membre Dernière intervention 13 septembre 2010
10 sept. 2010 à 08:48
Et non sa ne marche pas, j'avai deja essayé désolé de ne pas l'avoir précisé. Merci quand meme.
0
cybergut Messages postés 5 Date d'inscription lundi 30 août 2010 Statut Membre Dernière intervention 13 septembre 2010
10 sept. 2010 à 08:51
µAvec formulalocal sa ne rempli pas du tout ma case d'ailleur, bizar...
0
cybergut Messages postés 5 Date d'inscription lundi 30 août 2010 Statut Membre Dernière intervention 13 septembre 2010
10 sept. 2010 à 09:04
Et evidement avec formula et vlookup sa marche!
A question stupide réponse stupide. Merci a toi foliv57 pour ta réponse (je ne comprend toujours pas pourquoi sa ne marche pas).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
foliv57 Messages postés 420 Date d'inscription vendredi 17 novembre 2006 Statut Membre Dernière intervention 15 juillet 2014 9
10 sept. 2010 à 11:23
La formule ne devrait pas plutot être :

"=RECHERCHEV(D" & ActiveCell.Row & ";Magasins!A1:B8000;2;FAUX)"

Il me semble que le séparateur est ";" et pas ",", qu'il aime pas trop A:B sans limite et que le dernier paramètre est obligatoire.
0
bigfish_le vrai Messages postés 1835 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 20 novembre 2013 14
10 sept. 2010 à 15:32
cybergut, ce qui est certain c'est que le stupide n'est sûrement pas foliv57 qui t'a déjà donné la solution !

En effet en VBA il est de règle que d'utiliser Formulalocal des que l'on fait appel aux fonctions excel ! Pourquoi ?
et bien en Version française, les fonctions excel requièrent l'utilisation du ";" (point virgule) que le VBA n'aime pas !
Comme le VBA ne l'aime pas on le remplace par une virgule qu'excel interprète comme un point virgule mais qui bizarrement transforme la formule en une
chaîne de caractères non interprétée. Peut être est-ce un bug d'excel , mais c'est comme cela.

Donc pour répondre à ton entêtement voici un bricolage qui revient à faire F2+entrer :

Dim MaFormule As String
MaFormule = "=RECHERCHEV" & Chr$(40) & "D" & ActiveCell.Row & ",Magasins" & Chr$(33) & "A" & Chr$(58) & "B,2" & Chr$(41)
ActiveCell.Formula = MaFormule
MaFormule = ActiveCell.FormulaLocal
ActiveCell.FormulaLocal = MaFormule


A+
0
cybergut Messages postés 5 Date d'inscription lundi 30 août 2010 Statut Membre Dernière intervention 13 septembre 2010
13 sept. 2010 à 21:06
Désolé je ne voulais pas du tout critiquer foliv57 mais plutôt moi même.
Comme je l'ai dis plus haut avec vlookup a la place de recherchev sa marche très bien, j'ai donc choisi cette solution.
Et c'est en effet foliv qui m'a mis sur la voie avec son formulalocal, donc merci encore!
0
Rejoignez-nous