Excel - le pendu
Bonjour,
Mon fils doit créer un pendu sous excel. Malheureusement, il cherche depuis plusieurs jours comment tester les 24 lettres de l'alphabet (sous condition) sans passer par 24 "si"). Vous pouvez me donner une astuce pour le démarrage; après il se débrouillera bien. Merci à vous, Lilou
Bonjour et bienvenue sur le forum tatichat,
Si tu as un fichier, peux-tu le joindre ? Car je ne vois pas trop comment tu veux procéder.
Merci déjà pour cette rapide réponse. Je ne suis pas du tout une habituée des forums (en fait, c'est même la 1ère fois); si je fais des "bourdes" comme on dit chez nous, n'hésitez pas à me corriger
Il pense que la logique de départ serait de créer une table avec les 24 lettres de l'alphabet et de ce fait, chaque fois que je propose une lettre, cette proposition va "checker" dans sa table des 24 lettres. Si le "check" est correct, la lettre doit s'inscrire dans la base des 8 lettres vides- si elle n'est pas bonne, celle mauvaise lettre doit s'inscrire dans un cadre genre"mauvaise lettres proposées); ensuite il créera le dessin du pendu (mais ça, il peut le faire)Cependant, en partant avec sa logique de départ, il devrait "incrémenter" 24 fois la condition "si" et cela est interdit par le prof. Nous avons tout envisagé mais le problème, si je veux "un tout p'tit peu" l'aider c'est que moi, je ne connais que de la très vieille programmation en "basic" Oui, oui, cela a existé lol ! Si vous pouviez me donner l'astuce de logique de départ, cela pourrait bien l'aider. J'espère ne pas avoir été trop longue et vous promets d'essayer de résumer à l'avenir. Lilou
-- 05 Fév 2010, 11:43 --
Vite, vite je corrige ma grossière erreur. Je sais qu'il y a bien 26 lettres dans l'alphabet et non 24 !
Re,
Voici une ébauche de pendu :
C'est un exemple de base, donc il fait le minimum
Le mot à chercher se trouve en première ligne (que l'on masque). Les lettres sont entrées dans la 5è ligne (pas de limite !)
La ligne 2 révèle les lettres de la ligne 1 s'il y a une correspondance avec la ligne 5. Correspondance qui se traduit ici par un =SI(NB.SI(5:5;A1)<>0;A1;""). On peut traduire cette formule par : si la lettre entrée en ligne 5 existe dans le mot cherché alors on l'affiche. Sinon rien. J'ai également mis une petite mise en forme conditionnelle.
whouwawwh! super grand merci à vous. Il va avoir du boulot ce week-end! Cela va beaucoup l'aider. A bientôt dès que moi (hé oui, j'ai aussi souvent des questions sur excel) j'en aurai besoin. Votre site est excellent et d'après ce que j'entends autour de moi, sur d'autres sites, il est très rare que l'on recoive des réponse mais en plus aussi rapides! BRAVO à vous tous (ha oui, là je me permets quand même des majuscules =:)
Lilou
Autre formule pour les copieurs qui ne voudraient pas se faire démasquer :
=SI(SOMME(SI(5:5=A1;1;0))>0;A1;"")
à valider avec la combinaison Maj+Ctrl+Entrée.
Salut lomanic,
J'avoue ne pas comprendreLomanic a écrit :Autre formule pour les copieurs qui ne voudraient pas se faire démasquer :
=SI(SOMME(SI(5:5=A1;1;0))>0;A1;"")
Bonjour
En parlant de pendu, avez-vous vu celui de Sébastien
https://forum.excel-pratique.com/espace-detente/pendu-t853.html?hilit=pendu
Cordialement
Salut amadéus,
Oui j'avais vu
Bonjour vous tous,
Mon fiston a bien travaillé sur son pendu ce week-end. Voici sa réaction à la formule "de démarrage" reçue: je cite "pu....,comment je n'y ai pas pensé !" fin de citation. Voila, il n'a plus qu'à faire le développement (le dessin du pendu etc...). Bonne semaine à vous tous,
A vba-new
La fonction NB.SI() n'existait pas dans les premières versions d'Excel, comme SOMME.SI SOMMEPROD et quelques autres, mais le service d'assistance de MS proposait des formules matricielles qui résolvaient déjà ces questions. Les trois différences entre nos deux formules résident dans les fait que l'une doit être enregistrée comme une formule matricielle (ce qui peut représenter un inconvénient car elle n'est pas vraiment documentée dans Excel), la comptabilité avec les anciennes versions d'Excel (ce qui est moins intéressant actuellement car je doute que beaucoup d'utilisateurs aient encore recours à des versions antéririeures à Excel 4), l'absence des caractères " " encadrant la condition à satisfaire comme dans les macros d'Excel 4 (à moins que je n'aie pas bien compris sa syntaxe).
J'ai voulu tester la formule NB.SI sur un exemple, mais elle est trop subtile pour moi car, dans le fichier ci-joint, j'ai été obligé de changer légèrement la condition pour obtenir le même résultat qu'avec une formule matricielle à laquelle je suis plus habitué et j'aimerais comprendre pourquoi. Si je mets pas les guillemets anglais, Excel me signale une erreur de syntaxe...
J'aurais une autre question concernant ces formules : sont-elles plus rapides qu'une formule matricielle (j'ai comparé deux plages d'environ 27000 cellules avec une formule matricielle à trois conditions dans également 27000 cellules demandant environ 30 minutes de temps de calcul, alors que le processeur ne travaillait qu'à environ 50% de sa capacité).
D'avance merci.
A+
Bonjour lomanic,
Merci pour les explications.
Voici mon explication du "problème" que tu rencontres dans les deux utilisations de la fonction NB.SI.
La première :
=NB.SI(A3:A283;">0")permet de compter le nombre de cellule ayant une valeur (strictement) supérieure à 0.
La deuxième :
=NB.SI(A3:A283;"<>0")compte quant à elle le nombre de cellule dont le contenu est différent de "0" si c'est une chaîne, et différent de 0 si c'est un nombre. C'est-à-dire qu'une cellule vide (qui est donc considérée comme une chaîne vide) sera comptabilisée comme différente non pas de la valeur 0 mais de la chaîne "0". Si le contenu de la cellule est un nombre, ce même contenu sera alors comparé à la valeur 0 et non plus à la chaîne "0".
Conclusion, toutes les 281 cellules de la plage A3:A283 sont différentes de 0 ou "0".
Analyse à confirmer !
Pour ta question sur la lenteur/rapidité des formules matricielles, il me semble que trop de formules matricielles alourdit les processus de calcul dans le fichier. Si chaque formule matricielle opère sur un grand tableau (disons un tableau de 1000 lignes) et si tu étires cette formule à mille lignes, tu auras environ 1000 fois plus de données à traiter qu'avec une formule non matricielle qui retournerait le même résultat à chaque ligne sur les mille lignes.
Analyse encore à confirmer ! Il peut bien entendu y avoir d'autres raisons.
30 minutes de temps de calcul ! Ça fait beaucoup !