{"text_format":"1","workbook":"xlsx","n_sheets":2,"sheets":["Motus","Aide"],"not_rendered":{"charts":0,"images":3,"macros":1,"external_links":0,"defined_names":4,"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":"Motus","index":0,"n_rows":52,"n_cols":3,"rows_kept":52,"cut":false,"hidden":false,"merged":[]}
[]
[]
[]
[null,"mot à trouver","mise en veille des appareils electriques obligatoire"]
[null,"objectif",{"$f":"LEN(mot)","v":52}]
[]
[]
[]
[]
[]
[]
[null,null,"meilleurs résultats"]
[null,1,"OJKJVUYRYWPWTS ULUHGCVXVRDKLYTQTSOQNIHSWDKVWDKBBJKXH"]
[null,3,"HPOGM SUWKY SRKEBHAYOPKSPSPCVXLAIUMBGDETETAIQCBPZT Z"]
[null,5,"L CNCBT BPWOKETKEKZPY QCMKCOYCHFSRU WAZSIIUIHMVMQIWM"]
[null,2,"COMCGMZTVRWJYIEKICHANBDOPXP PZISXLMPKMUQBVERAMYRQCPO"]
[null,2,"OMTJPIHGUBIBAZGTDOICZZWSIKHJYHMGSZYJ LLRMJQLZLQFGN B"]
[null,2,"EIRTPFME KOUASFYKERCGSUYQTQTXPVVOTMWM QJMGT LJFVMGLG"]
[null,0,"YBLHDQDCRQVHUQAWCTT SZ JXQCJTQXPDZUXBGPCVKQ BFDUZKDY"]
[null,2,"PUHDTUPAETVCXJBWAPLKT ZESGQOIJDICJMTXUGCGUUCPFXJEYZX"]
[null,1,"XKAUAWVQSBQTHQPIYCQDIRPYOPHBTRBSDNYSRY GP HQQD AYILQ"]
[null,2,"JY X   NTKSDJWPOQJUDWFVNDBQDWBEMQELHBFMAPBOL QEQSBQA"]
[null,1,"LCFYRVMLOQ XCMVVHLIJJRHQCRVBEN YG UJEEKIFAGLYIZWMATL"]
[null,5,"VTSEXMKVIT EQBWVWVXUPZKCFISJUTLTBGL  WVUTJSGKIPRWHWI"]
[null,2,"H ATU J YVHSZAPDNHYW RWGQVTBZMZAH UCZNOAKZG ZERDIMKN"]
[null,1,"ERCSKDICQLGMTZYSTRPZ HDMGJSWLSIHS LQZAAD IFQORKVEUEG"]
[null,2,"YWPCWPAHGQEZQAM PUSUCYTRBCVUZDTEHVYDIJ MRQMSFZKUSPVT"]
[null,1,"KFSZANQDZRTQCGWZFJKGEZZYGW JRXCW HWQBFTMDKQROBFJC LC"]
[null,2,"EBVXVDBCSVLLKPYHMEOQYYPOSJTUAIUVJBUKUDKSISLMPVL NEPD"]
[null,1,"VDCPCLASTJM KMYJBVYPLJVEHR WJZSYFAWC WPNIPD  XXPTLZE"]
[null,4,"MLYDQCOSMSYI PHEEWGCZIWB HBG AQNKXYISRIRWWVRCCUWEMHK"]
[null,1,"RSILLSLPIRIJSVJTIRWTORLNJFABEOAJZDMUEAFREAGCJLEEFPQO"]
[null,1,"JCMSFNYMJBXBUKZLDJS SINEFPYGNCDMLCUFQ NVBXVSKKIFJSZN"]
[null,1,"QPL FTOIQKCUUAZMKQO BLDCKVAZGJJZHNMKTIKPBMJMIHQVCZWH"]
[null,2,"UJZEZOJINSOGHKQYCIKDIPPKZONCNHHXLMTEJKHHQRACRHXIWEIR"]
[null,0,"KOEOOB YDRQVATDIAKVXGYIMLUAUAVYDEQMZUGXHMQMHNDLJTMEX"]
[null,1,"RWGZTSDHCBBTX BXYRHJKPHCHZYCBQKJMMYOHFUOGTARNSV IXWS"]
[null,1,"BIGJRKJRHKNFCPVCQBSJRWZJMHZQFTXBKCMDPXNXGEXSHPNPFQDZ"]
[null,2,"ANZAIGPVMQFXZIQQHADWAPWAECFCCYMQXWUGGQBALYASXUNMCFUL"]
[null,2,"TUNNNQUZLTFEJFOQWT SWIVFWNZG SSPTOMVSZRAOWVIUUURVEXI"]
[null,1,"KLQLXNWSABAQQIWBNKLUVSTJKXUTCNCDXKYRWAHMTGTCIYDF TDB"]
[null,3,"SYQUWRB WKZMQKMNRSGUPCKPXOZLSMAWLWLOFOIYRDNRBRGVYWTG"]
[null,1,"GCBKBZKMBQJZJJUFOGHQYSPXTGGRXWBICKUPMBUDOHTREAGUFVNY"]
[null,3,"LTXHJVGNVTJPYXTFGLEZNPDUXLZCB JYYULMJHSSNRA GACKGDFX"]
[null,1,"TJUOSSZOUNRK JJAMTXVEFWPMGIDXFZOCHT BHVTXBPGHNZAKGTQ"]
[null,1,"NRYVSKYV LT   HZBNKVHBURCZE QUYKWLLRLCHKWCECYBRQVRVA"]
[null,4,"ZWMIGGNJRQMIYBEJEZLASFNGUIGDMIERBHYTVSGBBNOCSXEWTUKL"]
[null,2,"YEKYUQCXETMHXR JIYYLTSZAVSETVGXZIRLGWEMVHFTLCWSRYCYI"]
[null,2,"NNUUKKXBAVONSUJYDBJTXGTMWACDLETNNHUQCIYJZ ORUJTDMNRN"]
[null,4,"MDUCKCNDWJPUDJHUKMFTIBLFBHK IVPUCMWGJHBRZBESVGUVNGCH"]
[null,1,"GLHBYAUDOSCGXUNMCHCKKHGOOAHWLCO NFYAZNCOGOFGMHLUVJPT"]
[null,2," SKRDJHQVRBVUWAXA Z BDDQBBKRWTNKPTWNLCZOVHTIGSGJIUTC"]

{"sheet":"Aide","index":1,"n_rows":38,"n_cols":8,"rows_kept":38,"cut":false,"hidden":false,"merged":[]}
["Code aide xlstore","A","B","C","D","dd","E","F"]
["entête","Utilisation d'un algorithme génétique pour deviner un mot ou une expression","La fonction d'évaluation","L'initialisation","La boucle","Résumé","Référence à xlstore","Référence"]
["Icone","!","ü","&","#",1,"?","&"]
["texte","L'objectif de ce classeur est de vous montrer un exemple de l'utilisation de l'outil xlstore pour utiliser un algorithme génétique.\r\nPour cela, excel-store doit être installée et le programme doit y faire référence.\r\nPour poser le problème, on doit coder une solution sous forme de texte dont on doit déterminer la taille et l'alphabet.\r\nUn algorithme génétique doit contenir une fonction d'évaluation pour pouvoir choisir les meilleures solutions.\r\nEnfin, il faut déterminer une population de départ et la procédure d'évolution, c'est pour cette partie qu'on utilisera la macro complémentaire.","La cellule C4 a été nommée \"mot\". Pour noter un essai, on compare lettre à lettre le contenu de cette cellule avec le texte à évaluer.\r\n\r\nFunction motus(mot)\r\n  Dim total, i, but\r\n  but = Range(\"mot\").Value\r\n  total = 0\r\n  For i = 1 To Len(mot)\r\n    If Mid(mot, i, 1) = Mid(but, i, 1) Then\r\n      total = total + 1\r\n    End If\r\n  Next\r\n  motus = total\r\nEnd Function\r\n","Pour initialiser la population, on utilise des outils de xlstore.xlam en particulier l'objet algorithme_genetique auquel on a accès grâce à la référence que l'on a faite en vba. L'initialisation des paramètres se fait via la fonction initialise_parametres où l'on indique 3 informations :\r\nla fonction d'évaluation ici \"motus\"\r\nles caractères autorisés ici l'alphabet : AZERTYUIOPQSDFGHJKLMWXCVBN \r\nle nombre de chromosomes ici ça va simplement être la longueur du mot à chercher.\r\nEnfin pour le reste on garde les paramètres par défaut.\r\nOn récupère la population Range(\"resultats_motus\").Resize(40) 40 correspond à la population par défaut et résultats_motus est le nom de la plage b13:b14\r\n\r\nSub devine_mot()\r\n  Dim ag As XLSTORE.Algorithme_genetique\r\n  Set ag = XLSTORE.New_Algorithme_genetique\r\n  ag.initialise_parametres Fonction_d_evaluation:=\"'\" & ActiveWorkbook.Name & \"'!motus\"\r\n  ag.initialise_parametres lettres_possibles:=\"AZERTYUIOPQSDFGHJKLMWXCVBN \", nombre_de_chromosomes:=Len(Range(\"mot\").Value)\r\n  ag.Initialise_Population\r\n  Range(\"resultats_motus\").Resize(40) = ag.Population\r\nEnd Sub\r\n","Les différences entre la boucle et l'initialisation sont dans l'appel à Boucle_avec_nombre_de_generations_defini\r\nici on a 100 qui indique un nombre de boucles\r\nRange(\"resultats_motus\").Resize(40, 1).Offset(, 1) qui fait référence aux résultats mais uniquement aux textes et pas à leur évaluation.\r\nPar contre, on a toujours Range(\"resultats_motus\").Resize(40) qui permet de recopier sur la feuille les résultats valeur/individu.\r\n\r\nSub Continue_mot()\r\n  Dim ag As XLSTORE.Algorithme_genetique\r\n  Set ag = XLSTORE.New_Algorithme_genetique\r\n  ag.initialise_parametres Fonction_d_evaluation:=\"'\" & ActiveWorkbook.Name & \"'!motus\"\r\n  ag.initialise_parametres lettres_possibles:=\"AZERTYUIOPQSDFGHJKLMWXCVBN \", nombre_de_chromosomes:=Len(Range(\"mot\").Value)\r\n  ag.Boucle_avec_nombre_de_generations_defini 100, Range(\"resultats_motus\").Resize(40, 1).Offset(, 1), , _\r\n  Range(\"resultats_motus\").Resize(40)\r\n\r\nEnd Sub\r\n","On voit qu'en utilisant XLSTORE.xlam, on peut faire quelque chose d'aussi évolué qu'un algorithme génétique et cela en quelques lignes.\r\nCet exemple n'aborde pas toutes les possibilités de l'outil mais s'est contenté d'utiliser les valeurs par défaut. Pour en voir plus, vous pourrez voir les autres exemples.","Dans l'éditeur visual basic, vous choisissez votre projet qui n'a pas encore la référence puis vous allez dans le menu outils/références.","Il vous suffit maintenant de cocher xlstore dans la liste des références disponibles. Si la macro complémentaire est installée, la référence sera dans la liste."]
["Labels1","Comment faire la référence à xlstore.xlam",null,null,null,"Pour télécharger xlstore ou les autres exemples http://sn1.chez-alice.fr/xlstore/index.html","Retour","Retour"]
["Labels2"]
["Labels3"]
["Labels4"]
["Labels5"]
["Type 1","lien aide",null,null,null,"lien aide","lien aide","lien aide"]
["Type 2"]
["Type 3"]
["Type 4"]
["Type 5"]
["Code Aide liée 1","E",null,null,null,"http://sn1.chez-alice.fr/xlstore/index.html","A","A"]
["Code Aide liée 2"]
["Code Aide liée 3"]
["Code Aide liée 4"]
["Code Aide liée 5"]
["Affichage modal","Oui","Oui","Oui","Oui","Oui","Oui","Oui"]
["Utilisation croix rouge pour fermer autorisée","Oui","Oui","Oui","Oui","Oui","Oui","Oui"]
["Bouton 1"]
["Bouton 2",null,"Précédant","Précédant","Précédant"]
["Bouton 3","Suivant","Suivant","Suivant","Suivant","Fermer","Suivant","Précédant"]
["Bouton 4","Fermer","Fermer","Fermer","Fermer"]
["Bouton 5"]
["Zone saisie texte","Non","Non","Non","Non","Non","Non","Non"]
["cliquez dans la colonne pour afficher le formulaire","Oui","Oui","Oui","Oui","Non","Oui","Oui"]
["cliquez dans la colonne pour afficher le formulaire de saisie",null,"Motus!$B$4:$C$10","Motus!$B$12:$C$19","Motus!$C$12:$C$20",null,null,"Aide!$h$38:$h$52"]
["Réponse"]
["bouton","Fermer"]
["choix 1",false]
["choix 2",false]
["choix 3",false]
["choix 4",false]
["choix 5",false]
["colonne",2]
["Texte entré"]