N'écrire qu'UN SEUL "0" par ligne-colonne

Bonjour,

Comme le titre l'indique, je veux qu'il n'y ait la possibilité d'écrire qu'un seul "0" par ligne ou par colonne dans un tableau 3x5, (2x5) en fait car la colonne du milieu "ne peux pas contenir de "0".

Mais ce tableau 3x5 peut être, selon les besoins, "réduit" fictivement à un tableau 2x2 par

l' "écriture" de "0" dans la troisième colonne ou dans les dernières lignes (mais ils ne sont pas répercutés et cela ne change pas mon problème) :

Si j'ai mis un "0" en troisième colonne par exemple, je ne peux pas "écrire" de "0" dans la première colonne, même si je ne suis pas sur la ligne occupée par le "0" mis précédemment, ou alors j'autorise les doublons !

Le fichier joint vous expliquera peut-être mieux le problème.

Quelqu’un a t-il une solution ?

D'avance, merci,

GUGUSSE.

Bonjour

Voudrais-tu tester

Validation en F2 à copier sur F2:H6

=ET(OU(F2=0;F2>=30);NB.SI(INDIRECT(CAR(COLONNE()+64)&2&":"&CAR(COLONNE()+64)&6);0)<2;NB.SI(INDIRECT("F"&LIGNE()&":"&"H"&LIGNE());0)<2)

Cordialement

Bonjour,

J'ai téléchargé le fichier exemple et cela me convient. Juste une petite question pour m'enrichir :

Cette formule me paraît bien longue ! et si je ne refuse pas de l'appliquer, j'aimerai la comprendre.

Peux-tu s'il te plait, m'expliquer la procédure employée en termes "vulgaires",

(c'est à dire accessible à un novice d'Excel) ?

Bien cordialement,

GUGUSSE.

Bonjour

Dans la partie ajoutée à ta formule de validation

NB.SI(INDIRECT(CAR(COLONNE()+64)&2&":"&CAR(COLONNE()+64)&6);0)<2;NB.SI(INDIRECT("F"&LIGNE()&":"&"H"&LIGNE());0)<2)

Les 2 conditions définissent les plages concernées et précisent que le nombre de 0 doit être inférieur à 2 du type (NB.SI(plage;0)<2

La premiére plage est la colonne

=INDIRECT(CAR(COLONNE()+64)&2&":"&CAR(COLONNE()+64)&6)

CAR renvoie un caractère Texte défini par son Code

=CAR(65) donne A

=CAR(66) donne B, etc..

=COLONNE() placé en colonne 1 renvoie 1, placé en colonne 2, renvoie 2, etc

=CAR(COLONNE()+64) placé en colonne 1 renvoie donc A puisque CAR(65)=A

La fonction INDIRECT transforme les données texte et autres mélangées en formule "Active"

Ce qui revient à dire que si la formule est en colonne F (en F2)

INDIRECT(CAR(COLONNE()+64)&2&":"&CAR(COLONNE()+64)&6)

INDIRECT("F"&2&":"&"F")&6) retourne la plage F2:F6. Placée en H, elle tetourne H2:H6

Soit au final, la formule pour compter les 0 dans la colonne F est bien traduite NB.SI(F2:F6;0)

La seconde plageest la ligne limitée aux colonnes F à H

=INDIRECT("F"&LIGNE()&":"&"H"&LIGNE())

LIGNE() renvoie le No de ligne

si cette formule est en ligne 3, elle représente la plage F3:H3 ce qui donne bien, au bout de la chaine NB.SI(F3:H3;0)

Cordialement

Bonjour,

Quelle gymnastique d'esprit ! Mais j'ai un peu passé l'age !

Quoi qu'il en soit, il y a un petit ennui :

J'avais essayé le fichier joint et j'étais très content car cela correspondait à mes attentes.

Ce matin j'ai voulu copier cette formule dans mon fichier (sous Excel 2007) et là,

déception (voir copie d'écran) :

Et je ne peux entrer AUCUNE VALEUR !

J'ai copié cette formule dans le fichier que j'avais joint au premier message et là, "ça marche" !

J'ai reconverti ce fichier en version 2007 et "ça marche toujours" !

J'ai supprimé toutes les lignes et colonnes de mon fichier pour qu'il ne reste QUE ce que je vous

avais envoyé, et là, "ça marche" !

Je n'ai pas les compétences pour résoudre ce problème, et pourtant il me faut cette surveillance

car sans elle, mon fichier donnera des résultats erronés.

Cordialement,

GUGUSSE.

Bonjour Amadeus,

Un ami m'a suggéré cette formule :

"Sans le tableau CTRL (inutile dans cette formule)

validation en F2 :

=ET(OU(F2=0;F2>=30);NB.SI(F$2:F$6;0)<=1;NB.SI($F2:$H2;0)<=1)

à recopier à droite et en bas"

ET "ça marche", même sous "2007".

Merci de t'être investi dans mon problème, mais je considère celui-ci comme résolu.

Encore merci,

GUGUSSE.

Rechercher des sujets similaires à "ecrire seul ligne colonne"