Rechercher : dans
Par :

VBA excel TEST SI formule ou valeur

Dernière réponse le 12 fév 2009 à 06:39:17 swissmarcolino, le 11 fév 2009 à 09:53:35 
 Signaler ce message aux modérateurs

Bonjour !

J'ai (encore) un soucis ! dans un petite programme qui cherche certains prix (selon leur références) dans une grosse liste de prix, je doit seulement prendre ceux qui sont calculé. Qui ont donc une formule !

Je parcoure donc mon fichier (tout cela fonctionne) et quand j'arrive sur le prix, je doit vérifier qu'il soit bien constitué d'une formule par exemple "=E245+D452+D4524" et si oui, je doit copier la valeur.

comment faire ? qqn a une iddée ? (donc seulement voir si valeur ou formule, le reste c'est ok).

dans le même contexte, j'ai des valeur qui viennent d'autre feuilles. Donc pas exemple "='mafeuille'!$F$163" et ceux-ci ne doivent pas être copié ! j'ai peur que si je teste si c'est une formule, qu'il prenne ceux-ci aussi.

merci beaucoup pour l'aide.

salutations

marcolino

Configuration: Windows XP
Firefox 3.0.6

1

santiago69, le 11 fév 2009 à 10:08:04
  • +1

Salut Marcolino,
Je ne pense pas que ce soit possible avec de simple formules.
En VBA, fait simplement appel a la propriete Formula.
Voila 3 exemple de ce qu'elle peut renvoyer :

Debug.Print ActiveCell.Formula  'La cellule active contient une valeur
345
Debug.Print ActiveCell.Formula  'La cellule active contient une formule
=A13
Debug.Print ActiveCell.Formula  'La cellule active contient une formule faisant reference a une feuille externe
=[CLASSEUR.XLS]Feuil1!A1


Il te suffit donc d'utilise ce script :
If Left$(MaCellule.Formula, 1) = "=" And Mid$(MaCellule.Formula, 2, 1) <> "[" Then
    'Dans ce cas je copie
End If


Bon courage
Santiago


Il y a 10 types de personnes dans le monde
Ceux qui comprennent le binaire et les autres.

Répondre à santiago69

3

 swissmarcolino, le 12 fév 2009 à 06:39:17

Merci beaucoup !

C'est parfait !

Salutations

Marcolino

Répondre à swissmarcolino

2

pilas31, le 11 fév 2009 à 10:29:14

Bonjour,

C'est effectivement une solution en VBA mais on peut y arriver en utilisant la macro complémentaire MOREFUNC que l'on peut télécharger ici :
http://www.commentcamarche.net/telecharger/telecharger 34056283 morefunc macro complementaire excel

cela donne une fonction TEXTEFORMULE qui donne le texte d'une formule de calcul.
On peut ensuite tester qu'il y a bien "=" en 1° caractére et qu'il n'y a pas "!"
voila un exemple peut-être à améliorer

=SI(GAUCHE(TEXTEFORMULE(A1;1);1)="=";SI(ESTERREUR(CHERCHE("!";TEXTEFORMULE(A1;1);1));"OUI";"NON");"NON")


A+ Cordialement,
Il nous faudrait un plus gros bateau !

Répondre à pilas31
Collection CommentÇaMarche.net