Verifier si une cellule contient une formule
Résolu
Atic
-
atic -
atic -
Bonjour à tous,
Voici mon probème: je souhaite savoir si la cellule que je vais chercher via un recherchev contient une formule ou pas.
J'ai deja la Fonction suivante pour savoir si une cellule contient une formule
Function Avec_Formule(cel As Range)
If cel.HasFormula = True Then Avec_Formule = "estimate" Else Avec_Formule = "final"
End Function
Mais quand je fais Avec_Formule(recherchev(bla;bla;2;faux)) j'ai pour réponse #VALUE
est ce que quelqu'un voit comment solutionner mon probleme?
Merci à tous
Voici mon probème: je souhaite savoir si la cellule que je vais chercher via un recherchev contient une formule ou pas.
J'ai deja la Fonction suivante pour savoir si une cellule contient une formule
Function Avec_Formule(cel As Range)
If cel.HasFormula = True Then Avec_Formule = "estimate" Else Avec_Formule = "final"
End Function
Mais quand je fais Avec_Formule(recherchev(bla;bla;2;faux)) j'ai pour réponse #VALUE
est ce que quelqu'un voit comment solutionner mon probleme?
Merci à tous
Configuration: Windows XP Firefox 2.0.0.20
7 réponses
-
Bonjour
voici une fonction qui le permetFunction EstFormule(cel As Range) As Boolean EstFormule = False Application.Volatile If Left(cel.FormulaLocal, 1) = "=" Then EstFormule = True End Function
renvoi Vrai ou True (en VBA) s'il y a une formule-
-
Wilfried,
Je viens de tester ta fonction mais elle me renvoie egalement #VALEUR si je fais ça
=EstFormule(RECHERCHEV(A1;Feuil1!A:B;2;FAUX))
en revanche si je fais =+EstFormule(B1) là ya pas de probleme
surement que le recherchev ne renvoie pas une cellule
mais dans ce cas que dois je faire?
merci du coup de main
-
-
Re:
pour le recherchev c'est plus complexe, il renvoie une valeur et non pas une cellule, il faut utiliser Equiv qui renvoie un index
exemple : Equiv(MaRecherche;Maplage;0) renverra l'index de la recherche
Si ma colonne à renvoyer est la colonne E et ma plge de recherche est la colonne A
= "E" & Equiv(Marecherche;A:A;0) ' me donnera le référence de la cellule à renvoyer
avec indirect, on transforme cette référence Texte en Référence cellule
=INDIRECT("E" & Equiv(Marecherche;A:A;0)
il suffit alors d'utiliser EstFormule
=EstFormule(INDIRECT("E" & Equiv(Marecherche;A:A;0)) ' Revoie Vrai s'il y a une formule, sinon Faux
-
re:
je vien de te repondre mais ma reponse n'apparait pas ?????????
rechercheV renvoie une valeur, pas une cellule
alors on triche
=EstFormule(Indirect("Feuil1!B" & Equiv(A1;Feuil1!A:A;0)))
cela doit fonctionner
-
Bonjour tout le monde,
Ta façon de faire n'est pas logique. Rechercherv() te retourne une valeur et il faudrait passer une référence en parametre à la fonction de wilfried.
Recherche ta valeur avec index, tu pourras en déduire le n° de ligne et fabriquer l'adresse.
ex:
=ADRESSE(EQUIV(A1;Feuil1!A:A;0);2)
Il faudra peut-être adapter la fonction de wilfried pour convertir la chaine représentant l'adresse en adresse réelle
eric
EDIT : tes réponses viennent d'apparaitre wilfried, mon post n'a plus lieu d'etre :-) -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
-
Bonjour
je ne comprends pas, je ne trouve pas le réponses que j'ai données à ce fil. Ca bug sur ce fil....
je redonne donc la formule
=EstFormule(Indirect("Feuil1!B" & equiv(A1;Feuil2!A:A;0)))
-
salut Wilfried,
j'ai bien recu toutes tes réponses.
je viens de tester et ça marche nickel.
C'est vrai qu'il fallait que je ramene une cellulu et non sa valeur
en tout cas merci bcp et bonne continuation à tous