{"text_format":"1","workbook":"xlsx","n_sheets":3,"sheets":["Jeu","Notes","Exemples"],"not_rendered":{"charts":0,"images":0,"macros":1,"external_links":0,"defined_names":42,"comments":0,"pivot_tables":0},"unopened":[],"bounds":{"document_bytes":16777216,"sheet_cells":100000,"rows_first":2000,"rows_last":500,"rows_between":2000,"halvings":0,"cell_chars":16384,"cell_head_chars":4096},"cells_cut":0,"cells_raw":0,"read":"whole","date_system":"1900"}

{"sheet":"Jeu","index":0,"n_rows":17,"n_cols":38,"rows_kept":17,"cut":false,"hidden":false,"merged":[]}
[null,"Assistant pour SUDOKU"]
[null,false,null,null,null,false,null,null,null,9]
[null,{"$f":"\"Cases jaunes = cases impossibles pour le chiffre \" & ChiffreTest","v":"Cases jaunes = cases impossibles pour le chiffre 9"},null,null,null,null,null,null,null,null,{"$f":"MIN(PlageNbVidesDansLignes)","v":5},null,"Chiffres restants",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"GRILLE MEMORISEE"]
[null,9,null,null,1,null,null,null,null,null,{"$f":"IF(COUNTBLANK(Ligne)>0,COUNTBLANK(Ligne),\"\")","v":7},null,1,{"$f":"IF(NbChiffreRestant>0,NbChiffreRestant,\"\")","v":5},null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,9,null,null,1]
[null,null,7,null,null,null,null,4,5,null,6,null,2,5,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,7,null,null,null,null,4,5]
[null,3,null,6,null,2,null,null,1,null,5,null,3,5,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,3,null,6,null,2,null,null,1]
[null,null,4,null,null,7,9,1,null,null,5,null,4,6,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,4,null,null,7,9,1]
[null,null,null,2,null,null,null,6,null,null,7,null,5,7,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,2,null,null,null,6]
[null,null,null,1,2,4,null,null,3,null,5,null,6,5,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,1,2,4,null,null,3]
[null,null,6,null,null,8,null,2,null,3,5,null,7,7,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,6,null,null,8,null,2,null,3]
[null,null,8,3,null,null,null,null,6,null,6,null,8,7,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,8,3,null,null,null,null,6]
[null,null,null,null,null,null,5,null,null,9,7,null,9,6,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,5,null,null,9]
[{"$f":"MIN(PlageNbVidesDansColonnes)","v":5},{"$f":"IF(COUNTBLANK(Colonne)>0,COUNTBLANK(Colonne),\"\")","v":7},5,5,7,5,7,5,5,7,"Cases restantes"]
[null,null,null,null,null,null,null,null,null,null,null,{"$f":"IF(COUNTBLANK(BlocPetit),COUNTBLANK(BlocPetit),\"\")","v":5},7,6,0]
[null,null,null,null,null,null,null,null,null,null,{"$f":"MIN(PlageNbVidesDansBlocs)","v":5},6,5,6,3]
[null,null,null,null,null,null,null,null,null,null,null,6,7,5,6]
[null,null,null,null,null,null,null,null,null,null,null,0,3,6]

{"sheet":"Notes","index":1,"n_rows":51,"n_cols":3,"rows_kept":51,"cut":false,"hidden":false,"merged":[]}
[null,null,"Guide de construction du classeur SudokuVBA.xls - C. Monteil - monteil@ensat.fr - v1.2 - 26 mars 2006"]
["OBJECTIFS"]
[null,"-","ajoute à la version sans macro VBA Sudoku.xls la gestion d'une grille auxiliaire affichant les chiffres possibles pour chaque case"]
[null,"-","ceci est réalisé par utilisation de quelques procédures VBA, dont l'exécution est associée au clic sur le bouton \"Chiffres possibles\""]
[null,"-","la grille auxiliaire met en évidence les cases pour lesquelles il n'y a qu'une seule possibilité, et de manière moins marquée celles ayant 2 possibilités, en utilisant des mises en forme conditionnelles associée à la formule NBCAR de la feuille de calcul ; elle indique aussi les cases dans lesquelles il s'avère impossible d'ajouter un chiffre (croix sur fond rouge), mettant en évidence une impasse"]
[null,"-","un bouton Effacer placé au-dessous du bouton précédent permet de faire un effacement manuel de la grille auxiliaire"]
[null,"-","un bouton \"ProposerChiffre\" permet de se voir proposé un chiffre avec présélection de son emplacement dans la grille et message expliquant la raison pour laquelle il est proposé ; ce bouton n'est affiché que si la grille auxiliaire a été préalablement calculée (appui préalable sur bouton \"Chiffres possibles\") ; ceci a pour but de faciliter l'apprentissage des règles de détermination des chiffres"]
[null,"-","l'insertion de tout nouveau chiffre dans la grille de jeu efface le contenu de la grille auxiliaire et désactive les aides à la recherche de chiffres, de manière à favoriser la réflexion autonome et l'apprentissage du jeu"]
[null,"-","un bouton Nouvelle grille génère une nouvelle grille de jeu choisie aléatoirement parmi un ensemble de grilles prédéfinies"]
[null,"-","afin de gérer la cas de parties difficiles dans lesquelles on peut se trouver face à plusieurs solutions à un instant donné, un bouton Mémoriser permet de mémoriser la grille de jeu actuelle, de manière à pouvoir la restaurer ultérieurement par le bouton Restaurer, si les choix de chiffres effectués ont abouti à une impasse ; on peut utiliser plusieurs fois le bouton Mémoriser, seule étant mémorisée la grille affichée lors du dernier appui"]
[null,"-","lors de la génération d'une nouvelle grille, celle-ci est automatiquement mémorisée"]
["MISE EN ŒUVRE"]
[null,"-","On ne rappelle pas ici les détails d'utilisations des diverses fonctions Excel utilisées ou la manière d'utiliser l'éditeur Visual BASIC : se référer pour cela au diaporama PptExcel.xls téléchargeable sur le site Excel interactif :"]
[null,null,"http://www.inp-toulouse.fr/excel-interactif"]
[null,"-","On ne rappelle pas ici la construction de la partie gauche de la feuille du calcul décrite dans le classeur fonctionnant sans macro en langage VBA :"]
[null,null,"Sudoku.xls"]
[null,"Fabrication de la grille auxiliaire"]
[null,"-","Sélectionner la plage P5:X13, la nommer GrillePossibilites et la mettre en forme avec le quadrillage adéquat ; fixer la taille de police à 10, ce qui permet d'avoir jusqu'à 6 chiffres potentiels (au delà, les chiffres seront mal visibles) ; une taille de police différente peut permettre de modifier l'affichage ; dans la fenêtre \"Format / Cellule\", onglet \"Alignement\", cocher \"Renvoyer à la ligne automatiquement\""]
[null,"-","Nommer Info la cellule $P$3 (elle servira à afficher un message pendant le remplissage de la grille) ; définir sur la plage P3:X3 une mise en forme horizontale \"centré sur plusieurs colonnes\" (Format / Cellule, onglet \"Alignement\") et une couleur de police rouge"]
[null,"-","Nommer les plages destinées à recevoir, en marge, les chiffres possibles pour respectivement chaque ligne, chaque colonne et chaque bloc :"]
[null,null,"nom PossiblesLignes à associer à $Y$4:$Y$12"]
[null,null,"nom PossiblesColonnes à associer à $P$13:$X$13"]
[null,null,"nom PossiblesBlocs à associer à $Z$14:$AB$16"]
[null,null,"Affecter à ces plages les mises en formes de bordures désirées, un alignement \"retour à la ligne automatique\" et une taille de police de 7"]
[null,"Importation du code Visual BASIC"]
[null,"-","On peut procéder soit par copier/coller à partir de la version originelle du présent classeur, soit par import-export du code Visual BASIC via un fichier externe d'extension .BAS : dans ce cas, après affichage de l'explorateur de projet dans l'éditeur Visual BASIC, cliquer-droit sur le module Sudoku / Exporter un fichier ... ; puis dans le projet associé au nouveau classeur à construire, cliquer droit sur le nom du projet / Importer un fichier ..., et sélectionner le fichier .BAS précédent"]
[null,"Bouton \"Chiffres possibles\""]
[null,"-","Créer le bouton avec la barre d'outils Formulaires, et associer ce bouton à la macro RemplirGrillePossibilites ; dé-sélectionner ce bouton puis cliquer dessus pour provoquer le remplissage de la grille de test avec les chiffres possibles ; le fonctionnement de la macro est explicité dans le code Visual BASIC lui-même"]
[null,"Mise en forme conditionnelle de la grille auxiliaire"]
[null,"-","Se mettre dans le coin supérieur gauche de la grille des chiffres possibles (cellule P4) et définir le nom à référence relative NbChiffresPossibles (avec Ctrl-F3) avec la formule =NBCAR(Jeu!P4)/2 (le nombre de chiffres est le nombre de caractères de la case courante sur 2, car chaque chiffre est suivi d'une espace)"]
[null,"-","Sélectionner la grille des chiffres possibles et valider \"Format / Mise en forme conditionnelle\", avec les 3 conditions suivantes :"]
[null,null,"  Condition 1 : La valeur de la cellule est égale à =\"X\" avec format caractère gras sur fond rouge (case impossible) "]
[null,null,"  Condition 2 : La formule est =NbChiffresPossibles=1 avec format caractère gras sur fond vert (case à possibilité unique)"]
[null,null,"  Condition 3 : La formule est =NbChiffresPossibles=2 avec format caractère gras vert (case avec 2 possibilités)"]
[null,"Bouton \"ProposerChiffre\""]
[null,"-","Créer le bouton avec la barre d'outils Formulaires, et associer ce bouton à la macro ProposerChiffre ; dé-sélectionner ce bouton puis cliquer sur \"Chiffres Possibles\" pour provoquer le remplissage de la grille de test avec les chiffres possibles, puis sur \"Proposer chiffre\" afin de visualiser la proposition (s'il y en a une) ; le fonctionnement de la macro est explicité dans le code Visual BASIC lui-même"]
[null,"Effacement des chiffres possibles et désactivation des aides lors d'un ajout d'un nouveau chiffre dans la grille de jeu"]
[null,null,"Dans l'explorateur de projet de l'éditeur Visual BASIC, double-cliquer sur la feuille Feuil1 (Jeu) et rajouter les lignes Visual BASIC suivantes :"]
[null,null,"Private Sub Worksheet_Change(ByVal Target As Range)"]
[null,null,"'ROLE : désactive les aides a chaque modification de cellule dans la grille de jeu"]
[null,null,"     If Intersect(Target, [Grille]) Is Nothing Then Exit Sub"]
[null,null,"     DesactiverAides"]
[null,null,"End Sub"]
[null,null,"Cette procédure sera appelée lors de tout changement du contenu d'une cellule de la feuille jeu. La 1ère instruction quitte la procédure si la cellule modifiée n'est pas une cellule de la grille de jeu (intersection vide entre la cellule changée et la plage [Grille])"]
[null,"Masquage / affichage du compteur de défilement du chiffre-test pour les cases impossibles"]
[null,"-","on souhaite masquer le compteur lorsqu'on décoche la case \"Chiffres impossibles\", et à l'inverse le réafficher lorsqu'on la coche. Cliquer droit sur la case à cocher / \"Affecter une macro\" et associer à la macro CocheCasesImpossibles_QuandClic"]
[null,"Génération d'une nouvelle grille de jeu"]
[null,"-","Ajouter un bouton \"Nouvelle grille\" dans la feuille principale et l'associer à la macro DefinirNouvelleGrille"]
[null,"-","La cellule NumExempleCourant ne contient plus la formule avec la fonction ALEA : elle est à présent initialisée par la procédure DefinirNouvelleGrille associée au bouton précédent"]
[null,"Mémorisation / Restauration de la grille de jeu"]
[null,null,"Créer 2 nouveaux boutons Mémoriser et Restaurer, et les associer respectivement aux macros MemoriserGrille et RestaurerGrille"]

{"sheet":"Exemples","index":2,"n_rows":73,"n_cols":20,"rows_kept":73,"cut":false,"hidden":false,"merged":[]}
["Nombre d'exemples :",null,null,{"$f":"(ROW(ApresDernierExemple)-ROW(PremierExemple))/10","v":6},"(Solution : bouton + / - ci-dessus)"]
["Exemple sélectionné :",null,null,1]
[{"$f":"ChiffreExempleCourant","v":"FACILE"}]
[null,{"$f":"ChiffreExempleCourant","v":9},0,0,1,0,0,0,0,0,null,{"$f":"ChiffreExempleCourant","v":9},2,4,1,5,7,3,8,6]
[null,0,7,0,0,0,0,4,5,0,null,1,7,8,9,6,3,4,5,2]
[null,3,0,6,0,2,0,0,1,0,null,3,5,6,8,2,4,9,1,7]
[null,0,4,0,0,7,9,1,0,0,null,6,4,5,3,7,9,1,2,8]
[null,0,0,2,0,0,0,6,0,0,null,7,3,2,5,1,8,6,9,4]
[null,0,0,1,2,4,0,0,3,0,null,8,9,1,2,4,6,7,3,5]
[null,0,6,0,0,8,0,2,0,3,null,5,6,9,4,8,1,2,7,3]
[null,0,8,3,0,0,0,0,6,0,null,4,8,3,7,9,2,5,6,1]
[null,0,0,0,0,0,5,0,0,9,null,2,1,7,6,3,5,8,4,9]
["FACILE"]
[null,9,null,null,1,null,null,null,null,null,null,9,2,4,1,5,7,3,8,6]
[null,null,7,null,null,null,null,4,5,null,null,1,7,8,9,6,3,4,5,2]
[null,3,null,6,null,2,null,null,1,null,null,3,5,6,8,2,4,9,1,7]
[null,null,4,null,null,7,9,1,null,null,null,6,4,5,3,7,9,1,2,8]
[null,null,null,2,null,null,null,6,null,null,null,7,3,2,5,1,8,6,9,4]
[null,null,null,1,2,4,null,null,3,null,null,8,9,1,2,4,6,7,3,5]
[null,null,6,null,null,8,null,2,null,3,null,5,6,9,4,8,1,2,7,3]
[null,null,8,3,null,null,null,null,6,null,null,4,8,3,7,9,2,5,6,1]
[null,null,null,null,null,null,5,null,null,9,null,2,1,7,6,3,5,8,4,9]
["FACILE"]
[null,2,6,null,null,null,8,null,4,null,null,2,6,5,1,7,8,9,4,3]
[null,null,7,9,null,3,null,null,8,null,null,1,7,9,4,3,2,5,8,6]
[null,null,3,null,6,5,null,null,2,7,null,8,3,4,6,5,9,1,2,7]
[null,null,null,8,5,null,null,4,null,null,null,9,1,8,5,6,7,4,3,2]
[null,6,null,7,2,null,3,8,null,1,null,6,5,7,2,4,3,8,9,1]
[null,null,null,2,null,null,1,6,null,null,null,3,4,2,9,8,1,6,7,5]
[null,7,9,null,null,2,5,null,1,null,null,7,9,6,8,2,5,3,1,4]
[null,null,2,null,null,9,null,7,6,null,null,5,2,1,3,9,4,7,6,8]
[null,null,8,null,7,null,null,null,5,9,null,4,8,3,7,1,6,2,5,9]
["MOYEN"]
[null,null,7,null,1,null,2,null,6,null,null,3,7,4,1,9,2,5,6,8]
[null,2,null,null,4,null,6,null,null,9,null,2,5,8,4,7,6,3,1,9]
[null,null,9,null,3,null,8,4,2,null,null,1,9,6,3,5,8,4,2,7]
[null,4,null,5,7,null,9,6,null,2,null,4,8,5,7,1,9,6,3,2]
[null,null,null,1,null,null,null,9,null,null,null,6,3,1,2,8,5,9,7,4]
[null,9,null,7,6,null,4,8,null,1,null,9,2,7,6,3,4,8,5,1]
[null,null,6,null,8,null,1,null,9,null,null,7,6,3,8,4,1,2,9,5]
[null,8,null,null,5,null,3,null,null,6,null,8,1,9,5,2,3,7,4,6]
[null,null,4,null,9,null,7,null,8,null,null,5,4,2,9,6,7,1,8,3]
["MOYEN"]
[null,null,null,null,null,3,7,null,null,2,null,5,4,1,8,3,7,6,9,2]
[null,6,null,null,null,9,null,4,8,5,null,6,3,7,1,9,2,4,8,5]
[null,null,null,9,5,null,null,null,null,3,null,2,8,9,5,6,4,7,1,3]
[null,8,null,null,null,null,6,null,5,9,null,8,1,2,7,4,6,3,5,9]
[null,null,7,3,null,1,null,2,6,null,null,4,7,3,9,1,5,2,6,8]
[null,9,6,null,2,null,null,null,null,7,null,9,6,5,2,8,3,1,4,7]
[null,1,null,null,null,null,8,5,null,null,null,1,9,4,3,7,8,5,2,6]
[null,7,5,8,null,2,null,null,null,4,null,7,5,8,6,2,1,9,3,4]
[null,3,null,null,4,5,null,null,null,null,null,3,2,6,4,5,9,8,7,1]
["DIFFICILE"]
[null,null,8,null,6,3,9,null,1,null,null,4,8,7,6,3,9,5,1,2]
[null,2,null,null,null,null,null,null,null,7,null,2,9,5,1,4,8,3,6,7]
[null,null,null,1,null,null,null,4,null,null,null,6,3,1,7,2,5,4,8,9]
[null,1,7,null,2,null,4,null,5,3,null,1,7,8,2,9,4,6,5,3]
[null,null,null,null,null,5,null,null,null,null,null,3,4,6,8,5,7,9,2,1]
[null,5,2,null,3,null,6,null,4,8,null,5,2,9,3,1,6,7,4,8]
[null,null,null,3,null,null,null,1,null,null,null,9,6,3,4,8,2,1,7,5]
[null,7,null,null,null,null,null,null,null,4,null,7,5,2,9,6,1,8,3,4]
[null,null,1,null,5,7,3,null,9,null,null,8,1,4,5,7,3,2,9,6]
["DIFFICILE"]
[null,7,null,null,null,5,null,null,null,2,null,7,8,6,1,5,3,4,9,2]
[null,null,null,1,null,null,null,null,null,3,null,2,5,1,6,4,9,7,8,3]
[null,3,9,null,8,null,null,null,null,null,null,3,9,4,8,7,2,5,6,1]
[null,null,null,5,7,null,null,9,null,4,null,8,3,5,7,1,6,9,2,4]
[null,null,null,null,4,null,5,null,null,null,null,9,6,7,4,2,5,1,3,8]
[null,1,null,2,null,null,8,6,null,null,null,1,4,2,3,9,8,6,7,5]
[null,null,null,null,null,null,7,null,1,9,null,4,2,8,5,6,7,3,1,9]
[null,5,null,null,null,null,null,2,null,null,null,5,7,3,9,8,1,2,4,6]
[null,6,null,null,null,3,null,null,null,7,null,6,1,9,2,3,4,8,5,7]
["INSERER LES NOUVEAUX EXEMPLES AVANT CETTE LIGNE"]