Différencier le contenu d'une cellule

Bonjour le forum,

Je cherche à tester une cellule non sur son résultat mais sur son contenu.

Pour moi, une cellule peut avoir 3 types de contenu :

- rien (vide)

- constante

- formule

J'ai un début de réponse avec la fonction CELLULE et son paramètre "prefixe" (ça reste trop approximatif car elle permet en fait de récupérer le préfixe d'étiquette) mais elle a l'avantage de pouvoir être utilisée sans lever une erreur de référence circulaire.

Tout cela pour résoudre un problème de double saisie (deux cellules qui s'entre-référencent) pour permettre de saisir dans l'une ou dans l'autre en affichant la valeur saisie dans les deux.

https://www.excel-pratique.com/~files/doc2/Double_saisie.xls

Toutes vos remarques seront les bienvenues,

Dominique

Bonjour

Je n'ai pas compris grand chose...Cependant, l'aide d'Excel dit que CELLULE ("Prefixe" concerne les Valeurs de Texte et 22 est une valeur numérique...

Cordialement

Je vais tenter de recadrer ma question : existe-t-il un moyen pour savoir si une cellule contient une formule ou une constante (texte ou numérique) ?

Cordialement

hello

salut Amadéus

pas clair pour moi non plus

par contre, pourquoi as-tu besoin de ce gende de saisie (qui posera d'autres problèmes par la suite) ?

Bonjour

Pas compris non plus la finalité de l'exercice. Une piste peut être...

la fonction cellule avec l'argument type =CELLULE("type";B1)

Si B1 contient un nombre, elle renvoie la lettre v (pour valeur)

Si B1 contient une formule, elle renvoie la lettre l.

Autre idée : s'il s'agit seulement de savoir où sont les cellules qui contiennent des formules : Edition Atteindre (ou F5), puis cellules, sélectionner Formules (ou constantes... selon le choix). Possibilité ensuite de tramer les cellules sélectionnées pour les repérer.

Cordialement

Bonsoir

Une formule qui renvoie Texte, Formule, Nombre ou Vide

https://www.excel-pratique.com/~files/doc2/npLkHDouble_saisie.xls

Cordialement

Bonsoir à tous,

à V_Elbie:

Malheureusement, la fonction CELLULE("type" renvoie 'v' pour un numérique et 'l' pour du texte. Elle ne permet pas de savoir si la cellule contient une formule ou pas.

à jmd:

La raison c'est que dans un classeur à plusieurs feuilles, il serait plus agréable de faire la saisie des paramètres globaux, dans chacune des feuilles, tout en ayant la même valeur affichée dans chaque feuille.

à Amadéus:

La macro LIRE.CELLULE paraissait prometteuse. Je l'ai utilisé pour distinguer les cellules saisies avec la mise en forme conditionnelle. https://www.excel-pratique.com/~files/doc2/Detection_de_formules.xls

Cependant je ne peux pas l'utiliser entre deux cellules pour qu'elles se référencent l'une l'autre puisque pour Excel cela provoque une référence circulaire.

Alors que je pensais (naïvement) qu'en testant le contenu d'une cellule (avant calcul) et non la valeur affichée (après calcul), je pourrais m'affranchir de cette erreur de référence circulaire .

Peut-être aura-t-on cette possibilité dans une future version d'Excel .

Je pense donc que je vais donc laisser tomber ce problème.

Merci à tous quand même pour votre contribution,

Dominique

re à vous tous

et si tu faisais des feuilles de saisie FL1 et FL2

avec une feuille d'exploitation FLE

et par exemple en FLE, pour la cellule D3 :

D3FLE = D3FL1 & D3FL2

(& ou + selon que traites des lettres ou des nombres en D3)

Bonjour jmd,

Malheureusement ta solution ne fonctionne pas car c'est la même donnée qui doit être saisie entre les différentes feuilles. Et d'une feuille à l'autre je dois être capable de voir la dernière valeur saisie.

Cordialement

re à tous

je comprends encore moins, tout simplement parce que le peu que je comprends est à l'opposé de ce qu'on peut faire en saisie sur des formulaires papier.

si avec Excel tu t'aloignes du principe "papier", tu as forcément des difficultés

joins un exemple

Bonsoir,

Un essai avec une macro XL4 :

Insertion - Nom - Définir

Nom : formule

Fait référence à :

=LIRE.CELLULE(48;Feuil1!$A$1)

Ensuite, dans la feuille, taper dans une cellule : =formule

Ca retourne VRAI si A contient une formule et FAUX dans le cas contraire

Il est ensuite possible d'insérer cette formule nommée dans une autre formule.

@+

Amadéus a écrit :

Bonsoir

Une formule qui renvoie Texte, Formule, Nombre ou Vide

https://www.excel-pratique.com/~files/doc2/npLkHDouble_saisie.xls

Cordialement

Problème un peu similaire, comment interdire une formule dans une cellule Excel..

voir page suivante :

https://forum.excel-pratique.com/post516503.html#p516503

Bonjour,

J'ai encore un petit problème avec la macro, lorsque je l'utilise et que je tape une formule dans la cellule avec ma feuille protégée, la cellule se verrouille. Or j'ai besoin de revenir dessus pour écrire la bonne réponse. Y-a-t-il un moyen pour la déverrouiller à nouveau?

J'ai essayé avec :

Selection.Locked = False

Selection.FormulaHidden = False

mais cela ne convient pas...voir fichier joint.

David.

C'est parfait. Bon boulot.

Je profite de pouvoir vous répondre pour vous féliciter pour votre action. Je suis à chaque fois étonné par la simplicité des lignes vba, encore faut-il les maitriser évidemment.

Pour simplifier l'écriture de ma macro, je vous demande s'il est possible, de demander en vba à retrouver toutes les cellules déverrouillées de ma feuille et appliquer cette interdiction.

Si cela n'est pas possible, je ferai sans évidemment....

Encore merci pour votre aide. David.

J'ai résolu mon petit problème de copier/coller valeur.. en fait je peux m'en passer... et je protège la feuille avec un nouveau mot de passe....Encore merci pour vos code VBA très efficaces...David.

Rechercher des sujets similaires à "differencier contenu"