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

cybergut 5 Messages postés lundi 30 août 2010Date d'inscription 13 septembre 2010 Dernière intervention - 9 sept. 2010 à 17:14 - Dernière réponse : cybergut 5 Messages postés lundi 30 août 2010Date d'inscription 13 septembre 2010 Dernière intervention
- 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.
Afficher la suite 

Votre réponse

7 réponses

Meilleure réponse
foliv57 423 Messages postés vendredi 17 novembre 2006Date d'inscription 15 juillet 2014 Dernière intervention - 9 sept. 2010 à 17:18
3
Merci
Bonjour,

Essayez avec "FormulaLocal" à la place de "Formula"

Merci foliv57 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 70 internautes ce mois-ci

Commenter la réponse de foliv57
cybergut 5 Messages postés lundi 30 août 2010Date d'inscription 13 septembre 2010 Dernière intervention - 10 sept. 2010 à 08:48
0
Merci
Et non sa ne marche pas, j'avai deja essayé désolé de ne pas l'avoir précisé. Merci quand meme.
Commenter la réponse de cybergut
cybergut 5 Messages postés lundi 30 août 2010Date d'inscription 13 septembre 2010 Dernière intervention - 10 sept. 2010 à 08:51
0
Merci
µAvec formulalocal sa ne rempli pas du tout ma case d'ailleur, bizar...
Commenter la réponse de cybergut
cybergut 5 Messages postés lundi 30 août 2010Date d'inscription 13 septembre 2010 Dernière intervention - 10 sept. 2010 à 09:04
0
Merci
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).
Commenter la réponse de cybergut
foliv57 423 Messages postés vendredi 17 novembre 2006Date d'inscription 15 juillet 2014 Dernière intervention - 10 sept. 2010 à 11:23
0
Merci
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.
Commenter la réponse de foliv57
bigfish_le vrai 1839 Messages postés vendredi 13 mai 2005Date d'inscription 20 novembre 2013 Dernière intervention - 10 sept. 2010 à 15:32
0
Merci
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+
Commenter la réponse de bigfish_le vrai
cybergut 5 Messages postés lundi 30 août 2010Date d'inscription 13 septembre 2010 Dernière intervention - 13 sept. 2010 à 21:06
0
Merci
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!
Commenter la réponse de cybergut

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.