VBA excel TEST SI formule ou valeur
Résolu
swissmarcolino
Messages postés
12
Statut
Membre
-
swissmarcolino Messages postés 12 Statut Membre -
swissmarcolino Messages postés 12 Statut Membre -
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
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
A voir également:
- VBA excel TEST SI formule ou valeur
- Formule excel si ou - Guide
- Test performance pc - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Mise en forme conditionnelle excel formule si - Guide
- Liste déroulante excel - Guide
2 réponses
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 :
Il te suffit donc d'utilise ce script :
Bon courage
Santiago
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
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
A+
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+
C'est parfait !
Salutations
Marcolino