Afficher une cellule vide

Bonjour;

Je reviens vers vous pour une erreur dans mon fichier que je n'arrive pas à corriger.

L'erreur est la feuille "Fichier client" dans la colonne D. J'ai une liste déroulante avec "Oui" ou "Non".

J'ai mis une formule en place pour que cela affiche "Oui" lorsqu'il s'agit d'un nouveau client (le nom et le prénom ne sont pas retrouvés dans les lignes précédentes) et pour que cela affiche "Non" dans le cas où le client est retrouvé plus haut. Cela fonctionne.

Par contre je voudrais que sur toutes les lignes vides de clients (B et C) la case D soit vide. Je n'y arrive pas.

Il y a d'autres erreurs plus loin mais j'y vais progressivement.

Merci pour votre aide

Bonjour,

Dans un premier temps rajoutez devant votre formule (en D3) :

=SI(NBVAL(B3:C3)=0;"";

et fermez la parenthèse à la fin. Est-ce ok ?

Mais le choix dans la liste écrasera votre formule. de plus celle-ci ne recherche que sur la ligne précédente et pas dans toutes les lignes au dessus.

effectivement cela ne fonctionne pas

Bonsoir,

Une proposition en VBA
Tu trouveras un module contenant un sub chercher() dans lequel j'ai réalisé ce que tu voulais mais ne s'appliquant qu'à la ligne 7
Si cela te convient on prolongera ce code pour d'autres lignes

J'espère que le "oui" et le "non" que j'intègre correspondent à ce que tu veux et ne sont pas inversés

Merci, ca fonctionne parfaitement

Parfait,

Je regarderais demain pour adapter ce bout de code à toutes les lignes
Bonne soirée

Bonsoir,
Le forum bonsoir,

une formule en D3 : =SI(NBVAL(A3:C3)>0;SI(NB.SI.ENS(A$2:A2;A3;B$2:B2;B3;C$2:C2;C3)>0;"Non";"Oui");"")

@ bientôt

LouReeD

Merci LouReeD.

Il me semble que ça fonctionne impec. Je vérifie tout ça demain car là je suis peu explosé. Encore merci à tout le monde.

rebonjour,

Voila, je t'envoie le fichier dans lequel, lorsque tu ajouteras une ligne à ta feuille "Fichier client" en précisant le nom et le prénom, la colonne "nouveau forfait" sera mise à jour.
Mais attention, comme tu as utilisé la déclaration "Change" pour la feuille (Worsheets), il m'a fallu utiliser la colonne "A" pour trouver la dernière cellule non vide. De ce fait quand tu ajouteras un nom et un prénom, surtout ne remplit pas la cellule "A" (date) correspondante, mais remplit la une fois la procédure terminée, sinon on aura des erreurs sur la recherche de la dernière cellule non vide.

Bon courage

Bonjour LouReeD,

Evidemment avec les formules tu simplifies la tâche, mais en ce qui me concerne je ne sais pas travailler avec les formules, voila pourquoi j'ai fait une proposition sous VBA.
Il faudrait peut être que je m'y habitue aux formules .......
Bien cordialement et au plaisir

Merci Jacky.

C'est super. Ne m'en voulez pas mais je vais garder la proposition de LouReeD car je suis plus à l'aise avec les formules pour les modifier, les réutiliser qu'avec les macro

Pas de problèmes
Comme je disais à LouReeD, les formules ce n'est pas ma tasse de thé, mais je comprends leur facilité d'utilisation à défaut de comprend leur construction

A plus

Bonjour,

moi j'aime bien les formules en plus du VBA ! Tout dépend de la situation.

Ici pour cette formule j'utilise comme l'avait indiqué BeGood le NBVAL(Plage) qui permet de tester le nombre de valeur contenue dans la Plage, donc je regarde dans la plage A_ligne:C_ligne si ce nombre de valeur est supérieur à 0, donc s'il y a une date et/ou un nom et /ou un prénom alors la formule affiche le résultat de la fonction SI, sinon cela affiche rien c'est à dire un double guillemet. D'ailleurs on pourrait faire un test à =3 puisque le numéro de dossier dépend des trois valeur !

Ensuite il y a la fonction SI qui permet de faire une action ou une autre en fonction du résultat d'un test logique.
Ce test je le fait avec NB.SI.ENS(plage1; critère plage1; Plage2 ; Critère Plage 2; etc)
Donc en fait le regarde si dans une des lignes "au dessus" de la ligne où se trouve la formule, on peut retrouver l'ensemble des trois critères date nom et prénom.

Je fixe donc la ligne de départ à 2 avec le $, mais pour la "fin" de plage je ne met pas de $ comme cela en tirant la formule vers le bas, la ligne basse de la plage évoluera de la même manière, la première formule est en ligne 3, on regarde donc la plage de cellule du dessus allant de la ligne 2 "fixe" à la ligne 2 "variable", comme cela la formule copiée en ligne 4 la plage de cellule ira de la ligne 2 "fixe" à la ligne 3 (maintenant). Les critères étant respectivement la date, le nom et le prénom se trouvant sur la même ligne que la formule.
Si ce test d'égalité sur les valeurs des trois colonnes est supérieur à 0 c'est que le contrat existe déjà, donc si test logique = VRAI on fait ceci sinon on fait cela, ce qui donne on affiche "Oui", sinon on affiche "Non".

On retrouve bien : =SI(NBVAL(A3:C3)>0;SI(NB.SI.ENS(A$2:A2;A3;B$2:B2;B3;C$2:C2;C3)>0;"Non";"Oui");"")

@ bientôt

LouReeD

Bonjour LouReeD,

bravo pour tes explications
Mais je reste sur mes positions, je préfère le VBA (lol)

Au plaisir

Rechercher des sujets similaires à "afficher vide"