Forcer le calcul d'une cellule excel avec vb [Résolu]

Signaler
Messages postés
5
Date d'inscription
lundi 30 août 2010
Statut
Membre
Dernière intervention
13 septembre 2010
-
Messages postés
5
Date d'inscription
lundi 30 août 2010
Statut
Membre
Dernière intervention
13 septembre 2010
-
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

Messages postés
420
Date d'inscription
vendredi 17 novembre 2006
Statut
Membre
Dernière intervention
15 juillet 2014
5
Bonjour,

Essayez avec "FormulaLocal" à la place de "Formula"
Messages postés
5
Date d'inscription
lundi 30 août 2010
Statut
Membre
Dernière intervention
13 septembre 2010

Et non sa ne marche pas, j'avai deja essayé désolé de ne pas l'avoir précisé. Merci quand meme.
Messages postés
5
Date d'inscription
lundi 30 août 2010
Statut
Membre
Dernière intervention
13 septembre 2010

µAvec formulalocal sa ne rempli pas du tout ma case d'ailleur, bizar...
Messages postés
5
Date d'inscription
lundi 30 août 2010
Statut
Membre
Dernière intervention
13 septembre 2010

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).
Messages postés
420
Date d'inscription
vendredi 17 novembre 2006
Statut
Membre
Dernière intervention
15 juillet 2014
5
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.
Messages postés
1835
Date d'inscription
vendredi 13 mai 2005
Statut
Membre
Dernière intervention
20 novembre 2013
9
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+
Messages postés
5
Date d'inscription
lundi 30 août 2010
Statut
Membre
Dernière intervention
13 septembre 2010

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!