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
A voir également:
- Recherchev contient
- Si ma cellule contient du texte alors rien sinon recherchev - Forum Excel
- Le fichier à télécharger comporte plusieurs calques. l’un d’eux contient un mot caché. quel est ce mot ? - Forum Téléchargement
- Si cellule contient texte alors ✓ - Forum Excel
- Recherchev somme plusieurs lignes ✓ - Forum Excel
- Formule sheet si contient ✓ - Forum Excel
7 réponses
Bonjour
voici une fonction qui le permet
renvoi Vrai ou True (en VBA) s'il y a une formule
voici une fonction qui le permet
Function 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
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
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
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 :-)
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
Merci d'avoir répondu si rapidement,
merci pour la fonction, mais puis je lui donner en parametre un recherchev et non directement une cellule
et si oui pourquoi çe netait pas possible dans ma fonction?
merci encore
A bientot
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