Recuperer valeur cellule avec formule

bonjour,

je voudrais récupérer dans une variable VBA la valeur d'une cellule qui contient le résultat d'une fonction. j'ai utiliser la ligne du type

VAL = worksheets("calcul").cells(3,3).value

quand la cellule contient une valeur ça marche mais quand je veux récupérer le résultat d'une fonction dans la cellule en question ça ne marche pas. Il me retourne un erreur de compilation me disant qu'il y a une erreur de type.

Quelqu'un sait comment on fait.

je précise que je suis sous excel 2007

merci à vous.

Bonsoir,

il n'y a rien à faire, car vous avez tout bon !

Juste une erreur de déclaration de variable : votre variable VAL est déclarée comment ?

si vous avez DIM VAL As Integer

et que dans la cellule vous avez du texte alors vous essayez de mettre des patates dans des choux !!!

Donc pour être "variable" dimensionnez votre variable en Variant afin qu'elle "s'adapte" aux valeurs...

Le mieux est de "typer" au plus près de la réalité vos variables, donc faites un tour sur l'aide de VBA pour voir les différent type de variable et de choisir celui qui est le mieux adapté à votre valeur de cellule.

@ bientôt

LouReeD

Non le retour de la fonction est typé comme double et

la variable de VBA est aussi de type double

mais j'ai vu sur internet que si la formule était dans la case F8 par exemple et que ma variable VBA est test il suffisait d'écrire

dim test as double

test =[sheets1!F8]

je vais essayer demain sur mon code

Bonsoir,

Val est un nom de fonction VBA... Il est toujours conseillé de ne pas utiliser de mots-clés du langage comme noms de variables !

(Certains sont carrément interdit, et dès qu'on les écrit d'une façon interprétée comme nom de variable, l'interpréteur se manifeste, mais ce n'est pas le cas de tous, loin de là, et cela peut toujours réserver des surprises.)

Cordialement.

Et salut à LouReed !

test =[sheets1!F8]

ca fonctionne.

Cordialement.

Bonjour,

Maréchal

En effet c'est un point qui m'a échappé : les noms de variables réservés par VBA !

Mais n'y a t il pas un message d'erreur ou d'alerte lors de l'utilisation de ce type de variables lors de l'écriture du code ?

@ bientôt et merci de vos mercis !

LouReeD

Re,

Pas de message direct (du moins je n'en ai jamais eu), mais indirectement pour certains le type de message qui indique que VBA attend autre chose (donc qu'il interprète bien comme un mot-clé utilisé avec une syntaxe erroné) : on ne fait pas tout de suite le rapprochement (au début de ce genre d'aventure...) mais quand le fait de changer ou ajouter une lettre au nom de variable élimine l'erreur, cela confirme bien les raisons de réagir de VBA.

Mais dans la plupart des cas pas de message à l'écriture du code, dysfonctionnement selon les cas lors de l'exécution qui se traduit soit par erreur (ce qui est le mieux !) soit par un résultat imprévu (plus vicieux, on peut y passer du temps !).

Il vaut mieux autant que possible éviter...

Re-bonne journée.

Rechercher des sujets similaires à "recuperer valeur formule"