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

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

Votre réponse

7 réponses

Meilleure réponse
Messages postés
423
Date d'inscription
vendredi 17 novembre 2006
Dernière intervention
15 juillet 2014
3
Merci
Bonjour,

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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de foliv57
Messages postés
5
Date d'inscription
lundi 30 août 2010
Dernière intervention
13 septembre 2010
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
Messages postés
5
Date d'inscription
lundi 30 août 2010
Dernière intervention
13 septembre 2010
0
Merci
µAvec formulalocal sa ne rempli pas du tout ma case d'ailleur, bizar...
Commenter la réponse de cybergut
Messages postés
5
Date d'inscription
lundi 30 août 2010
Dernière intervention
13 septembre 2010
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
Messages postés
423
Date d'inscription
vendredi 17 novembre 2006
Dernière intervention
15 juillet 2014
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
Messages postés
1839
Date d'inscription
vendredi 13 mai 2005
Dernière intervention
20 novembre 2013
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
Messages postés
5
Date d'inscription
lundi 30 août 2010
Dernière intervention
13 septembre 2010
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.