Nom de fichier : une autre solution
Nous l’avons souvent déclaré : dans Excel – comme d’ailleurs avec toute modélisation – il y a souvent plusieurs façons d’atteindre un objectif fixé.
Il y a quatre jours, nous vous avons présenté une formule de validation de données qui servait à vérifier que – pour un nom de classeur – aucun caractère interdit n’était utilisé.
Voici deux autres formules de validation que vous auriez aussi pu utiliser…
Avec la fonction EstErreur()…
La solution suivante est plus simple à imaginer et plus compréhensible que la solution proposée il y a quatre jours, mais elle est plus lourde avec 257 caractères au lieu des 77 caractères de notre solution originale :
=et(esterreur(trouve("/";$B$1));esterreur(trouve("\";$B$1));esterreur(trouve(":";
$B$1));esterreur(trouve("*";$B$1));esterreur(trouve("?";$B$1));esterreur(trouve(
"";$B$1));esterreur(trouve("<";$B$1));esterreur(trouve(">";$B$1));esterreur(
trouve("""";$B$1)))
Avec la fonction SommeProd()…
En revanche, voici une solution qui non seulement se révèle presque aussi compacte (80 caractères) que notre solution initiale mais aussi utilise le SommeProd() avec « -- » que nous avions découvert dans le message du 27 mars 2008 :
=sommeprod(--(non(esterreur(trouve(stxt("\:/*?<>""";ligne($1:$9);1);$B$1)))))=0
Cette formule renvoie VRAI quand le nombre total de fois où l’on a trouvé un des caractères interdits est nul.
Remarque – Un avantage notable de cette dernière solution est qu’il n’est plus nécessaire d’indiquer dans la formule le nombre de caractères autorisé pour le nom du classeur : le seul paramètre à régler est le nombre (ici, 9) des caractères prohibés.
Il y a quatre jours, nous vous avons présenté une formule de validation de données qui servait à vérifier que – pour un nom de classeur – aucun caractère interdit n’était utilisé.
Voici deux autres formules de validation que vous auriez aussi pu utiliser…
Avec la fonction EstErreur()…
La solution suivante est plus simple à imaginer et plus compréhensible que la solution proposée il y a quatre jours, mais elle est plus lourde avec 257 caractères au lieu des 77 caractères de notre solution originale :
=et(esterreur(trouve("/";$B$1));esterreur(trouve("\";$B$1));esterreur(trouve(":";
$B$1));esterreur(trouve("*";$B$1));esterreur(trouve("?";$B$1));esterreur(trouve(
"";$B$1));esterreur(trouve("<";$B$1));esterreur(trouve(">";$B$1));esterreur(
trouve("""";$B$1)))
Avec la fonction SommeProd()…
En revanche, voici une solution qui non seulement se révèle presque aussi compacte (80 caractères) que notre solution initiale mais aussi utilise le SommeProd() avec « -- » que nous avions découvert dans le message du 27 mars 2008 :
=sommeprod(--(non(esterreur(trouve(stxt("\:/*?<>""";ligne($1:$9);1);$B$1)))))=0
Cette formule renvoie VRAI quand le nombre total de fois où l’on a trouvé un des caractères interdits est nul.
Remarque – Un avantage notable de cette dernière solution est qu’il n’est plus nécessaire d’indiquer dans la formule le nombre de caractères autorisé pour le nom du classeur : le seul paramètre à régler est le nombre (ici, 9) des caractères prohibés.
0 Commentaire(s):
Enregistrer un commentaire
<< Accueil