EXTRAITS DE LA SOURCE DE CDP POUR CEUX QUI VEULENT SE LANCER DANS UNE CRYTANALYSE OU UN CLONAGE. MERCI DE FAIRE FIGURER L'URL http://www.multimania.com/autocoup/crypto.html sur les clones . -------------------------------------------------------- LES CARACTERES UTILISES 'Rempli la grille standard (il s'agit du code ascii) grille(1, 1) = 97 grille(1, 2) = 120 grille(1, 3) = 49 grille(1, 4) = 118 grille(1, 5) = 111 grille(1, 6) = 80 grille(1, 7) = 54 grille(1, 8) = 42 grille(1, 9) = 72 grille(1, 10) = 103 grille(2, 1) = 38 grille(2, 2) = 233 grille(2, 3) = 65 grille(2, 4) = 95 grille(2, 5) = 232 grille(2, 6) = 43 grille(2, 7) = 100 grille(2, 8) = 114 grille(2, 9) = 47 grille(2, 10) = 234 grille(3, 1) = 109 grille(3, 2) = 106 grille(3, 3) = 35 grille(3, 4) = 84 grille(3, 5) = 70 grille(3, 6) = 64 grille(3, 7) = 53 grille(3, 8) = 90 grille(3, 9) = 115 grille(3, 10) = 73 grille(4, 1) = 121 grille(4, 2) = 89 grille(4, 3) = 85 grille(4, 4) = 66 grille(4, 5) = 92 '\ grille(4, 6) = 99 grille(4, 7) = 113 grille(4, 8) = 41 grille(4, 9) = 224 grille(4, 10) = 231 grille(5, 1) = 45 grille(5, 2) = 48 grille(5, 3) = 98 grille(5, 4) = 81 grille(5, 5) = 110 grille(5, 6) = 77 grille(5, 7) = 71 grille(5, 8) = 55 grille(5, 9) = 74 grille(5, 10) = 34 grille(6, 1) = 107 grille(6, 2) = 50 grille(6, 3) = 46 grille(6, 4) = 51 grille(6, 5) = 59 grille(6, 6) = 40 grille(6, 7) = 235 grille(6, 8) = 91 grille(6, 9) = 116 grille(6, 10) = 249 grille(7, 1) = 63 grille(7, 2) = 67 grille(7, 3) = 119 grille(7, 4) = 82 grille(7, 5) = 83 grille(7, 6) = 78 grille(7, 7) = 37 grille(7, 8) = 101 grille(7, 9) = 94 grille(7, 10) = 93 grille(8, 1) = 68 grille(8, 2) = 105 grille(8, 3) = 32 grille(8, 4) = 39 grille(8, 5) = 104 grille(8, 6) = 52 grille(8, 7) = 44 grille(8, 8) = 36 grille(8, 9) = 33 grille(8, 10) = 125 grille(9, 1) = 108 grille(9, 2) = 122 grille(9, 3) = 86 grille(9, 4) = 79 grille(9, 5) = 62 grille(9, 6) = 58 grille(9, 7) = 238 grille(9, 8) = 56 grille(9, 9) = 102 grille(9, 10) = 117 grille(10, 1) = 88 grille(10, 2) = 87 grille(10, 3) = 61 grille(10, 4) = 60 grille(10, 5) = 69 grille(10, 6) = 112 grille(10, 7) = 76 grille(10, 8) = 123 grille(10, 9) = 57 grille(10, 10) = 75 -------------------------------------------------------- LA PROCEDURE DE CRYPTAGE Private Sub cryptage() 'remise à zéro des variables j = 0 k = 0 r = 0 c = 0 p = 0 q = 0 'efface les données des autres cases Text2.Text = "" Text3.Text = "" Text4.Text = "" Text5.Text = "" Text6.Text = "" Text7.Text = "" 'affiche la lettre en cours de cryptage Text2.Text = Mid(texteacoder, i, 1) 'empeche la saisie de caractères non autorisés If Text2.Text = Chr(8) Or Text2.Text = Chr(9) Or Text2.Text = Chr(10) Or Text2.Text = Chr(13) Then GoTo horsprocedure End If 'enlever les autres caractères indésirables If Asc(Text2.Text) = 96 Or Asc(Text2.Text) = 124 Then GoTo horsprocedure ElseIf Asc(Text2.Text) > 125 And Asc(Text2.Text) < 224 Then GoTo horsprocedure ElseIf Asc(Text2.Text) > 224 And Asc(Text2.Text) < 231 Then GoTo horsprocedure ElseIf Asc(Text2.Text) > 235 And Asc(Text2.Text) < 238 Then GoTo horsprocedure ElseIf Asc(Text2.Text) > 238 And Asc(Text2.Text) < 249 Then GoTo horsprocedure ElseIf Asc(Text2.Text) > 249 Then GoTo horsprocedure End If 'cherche position de la lettre dans la table For j = 1 To 10 For k = 1 To 10 If Asc(Text2.Text) = grille(j, k) Then GoTo saut End If Next k Next j saut: Text2.Text = Text2.Text + " en R" + Format(j) + " C" + Format(k) 'affiche position lettre dans tableau supersaut: ' reviens ici en cas de probleme sur un systeme de codage 'sélection du système de codage 'routine de sélection aléatoire du système Randomize a = Int((4 * Rnd) + 1) If a > 4 Then 'evite le débordement a = 4 End If Select Case a 'ici sera fait le choix aléatoire Case 1 'lettre rangée - lettre colonne 1er système Text3.Text = "LR-LC" ' sélection du système lettre rangée -lettre colonne 'proposition de cryptage For r = 1 To 10 For c = 1 To 10 If r = k Then 'enleve la lettre codée GoTo marque End If If c = j Then 'enleve la lettre codée GoTo marque End If 'enleve la lettre espace If grille(j, r) = 32 Then GoTo marque End If If grille(c, k) = 32 Then GoTo marque End If Text4.Text = Text4.Text + Chr$(grille(j, r)) + Chr$(grille(c, k)) 'affiche les propositions marque: Next c Next r ' choix dans la proposition 'Prend 2 caractères au hasard dans la chaine retour: Randomize aleatoire = Int((79 * Rnd) + 1) If aleatoire Mod 2 = 0 Then 'chiffrepair alors qu'il faut un impair GoTo retour End If Text5.Text = Mid(Text4.Text, aleatoire, 2) ' choix du caractère stockchaine = stockchaine + Format(Len(Text5.Text)) 'affiche le numéro de la permutation Text6.Text = Format(typepermutations(j, k)) stockpermut = stockpermut + Format(Text6.Text, "000") 'affiche la clé en cour For p = 1 To 10 For q = 1 To 10 Text7.Text = Text7.Text + Chr(grille(p, q)) + Chr(32) Next q Next p 'affiche le texte codé Text8.Text = Text8.Text + Text5.Text 'modifie la grille modifgrille Val(Text6.Text) Case 2 'chaine ligne chaine colonne Text3.Text = "CR-CC" 'proposition de cryptage. For r = 1 To 9 For c = 1 To 9 If r = k Then 'enleve la lettre codée GoTo marque1 End If If r + 1 = k Then 'enleve la lettre codée GoTo marque1 End If If c = j Then 'enleve la lettre codée GoTo marque1 End If If c + 1 = j Then 'enleve la lettre codée GoTo marque1 End If 'enleve la lettre espace If grille(j, r) = 32 Then GoTo marque1 End If If grille(j, r + 1) = 32 Then GoTo marque1 End If If grille(c, k) = 32 Then GoTo marque1 End If If grille(c + 1, k) = 32 Then GoTo marque1 End If Text4.Text = Text4.Text + Chr$(grille(j, r)) + Chr$(grille(j, r + 1)) + Chr$(grille(c, k)) + Chr$(grille(c + 1, k)) 'affiche les propositions marque1: Next c Next r ' choix dans la proposition 'Prend 4 caractères au hasard dans la chaine retour1: Randomize aleatoire = Int((26 * Rnd) + 1) Select Case aleatoire Case 1 Text5.Text = Mid(Text4.Text, 1, 4) ' choix du caractère Case 2 Text5.Text = Mid(Text4.Text, 5, 4) ' choix du caractère Case 3 Text5.Text = Mid(Text4.Text, 9, 4) ' choix du caractère Case 4 Text5.Text = Mid(Text4.Text, 13, 4) ' choix du caractère Case 5 Text5.Text = Mid(Text4.Text, 17, 4) ' choix du caractère Case 6 Text5.Text = Mid(Text4.Text, 21, 4) ' choix du caractère Case 7 Text5.Text = Mid(Text4.Text, 25, 4) ' choix du caractère Case 8 Text5.Text = Mid(Text4.Text, 29, 4) ' choix du caractère Case 9 Text5.Text = Mid(Text4.Text, 33, 4) ' choix du caractère Case 10 Text5.Text = Mid(Text4.Text, 37, 4) ' choix du caractère Case 11 Text5.Text = Mid(Text4.Text, 41, 4) ' choix du caractère Case 12 Text5.Text = Mid(Text4.Text, 45, 4) ' choix du caractère Case 13 Text5.Text = Mid(Text4.Text, 49, 4) ' choix du caractère Case 14 Text5.Text = Mid(Text4.Text, 53, 4) ' choix du caractère Case 15 Text5.Text = Mid(Text4.Text, 57, 4) ' choix du caractère Case 16 Text5.Text = Mid(Text4.Text, 61, 4) ' choix du caractère Case 17 Text5.Text = Mid(Text4.Text, 65, 4) ' choix du caractère Case 18 Text5.Text = Mid(Text4.Text, 69, 4) ' choix du caractère Case 19 Text5.Text = Mid(Text4.Text, 73, 4) ' choix du caractère Case 20 Text5.Text = Mid(Text4.Text, 77, 4) ' choix du caractère Case 21 Text5.Text = Mid(Text4.Text, 81, 4) ' choix du caractère Case 22 Text5.Text = Mid(Text4.Text, 85, 4) ' choix du caractère Case 23 Text5.Text = Mid(Text4.Text, 89, 4) ' choix du caractère Case 24 Text5.Text = Mid(Text4.Text, 93, 4) ' choix du caractère Case 25 Text5.Text = Mid(Text4.Text, 97, 4) ' choix du caractère Case 26 Text5.Text = Mid(Text4.Text, 101, 4) ' choix du caractère End Select stockchaine = stockchaine + Format(Len(Text5.Text)) 'affiche le numéro de la permutation Text6.Text = Format(typepermutations(j, k)) stockpermut = stockpermut + Format(Text6.Text, "000") 'affiche la clé en cour For p = 1 To 10 For q = 1 To 10 Text7.Text = Text7.Text + Chr(grille(p, q)) + Chr(32) Next q Next p 'affiche le texte codé Text8.Text = Text8.Text + Text5.Text 'modifie la grille modifgrille Val(Text6.Text) Case 3 'lettre entre lettres Text3.Text = "L-E-L" 'proposition de cryptage. 'refuse les coins de la grille et renvoi ailleurs If j = 1 And k = 1 Then GoTo supersaut ElseIf j = 1 And k = 10 Then GoTo supersaut ElseIf j = 10 And k = 1 Then GoTo supersaut ElseIf j = 10 And k = 10 Then GoTo supersaut End If 'refuse la premiere ligne If k = 1 Then GoTo supersaut ElseIf k = 10 Then GoTo supersaut ElseIf j = 1 Then GoTo supersaut ElseIf j = 10 Then GoTo supersaut End If 'refuse la case espace If grille(j + 1, k) = 32 Then GoTo supersaut ElseIf grille(j - 1, k) = 32 Then GoTo supersaut ElseIf grille(j, k + 1) = 32 Then GoTo supersaut ElseIf grille(j, k - 1) = 32 Then GoTo supersaut End If 'horizontal If k > 1 And k < 10 Then Text4.Text = Text4.Text + Chr$(grille(j, k - 1)) + Chr$(grille(j, k + 1)) End If 'vertical If j > 1 And j < 10 Then Text4.Text = Text4.Text + Chr$(grille(j - 1, k)) + Chr$(grille(j + 1, k)) End If If Len(Text4.Text) > 2 Then Randomize aleatoire = Int((3 * Rnd) + 1) If aleatoire >= 2 Then 'corrige et favorise le choix vertical aleatoire = 3 End If 'prends les deux premiers caractères ou les deux derniers suivant l'aléatoire Text5.Text = Mid(Text4.Text, aleatoire, 2) Else Text5.Text = Mid(Text4.Text, 1, 2) End If stockchaine = stockchaine + Format(Len(Text5.Text)) 'affiche le numéro de la permutation Text6.Text = Format(typepermutations(j, k)) stockpermut = stockpermut + Format(Text6.Text, "000") 'affiche la clé en cour For p = 1 To 10 For q = 1 To 10 Text7.Text = Text7.Text + Chr(grille(p, q)) + Chr(32) Next q Next p 'affiche le texte codé Text8.Text = Text8.Text + Text5.Text 'modifie la grille modifgrille Val(Text6.Text) Case 4 'Lettre entre chaine Text3.Text = "L-E-C" 'proposition de cryptage. 'refuse les lettre des rangees et des colonnes 1 2 8 10 If j < 3 Or j > 8 Then GoTo supersaut ElseIf k < 3 Or k > 8 Then GoTo supersaut End If 'refuse case espace If grille(j + 1, k) = 32 Then GoTo supersaut ElseIf grille(j - 1, k) = 32 Then GoTo supersaut ElseIf grille(j, k + 1) = 32 Then GoTo supersaut ElseIf grille(j, k - 1) = 32 Then GoTo supersaut End If If grille(j + 2, k) = 32 Then GoTo supersaut ElseIf grille(j - 2, k) = 32 Then GoTo supersaut ElseIf grille(j, k + 2) = 32 Then GoTo supersaut ElseIf grille(j, k - 2) = 32 Then GoTo supersaut End If 'horizontal If k > 2 And k < 9 Then Text4.Text = Text4.Text + Chr$(grille(j, k - 2)) + Chr$(grille(j, k - 1)) + Chr$(grille(j, k + 1)) + Chr$(grille(j, k + 2)) End If 'vertical If j > 2 And j < 9 Then Text4.Text = Text4.Text + Chr$(grille(j - 2, k)) + Chr$(grille(j - 1, k)) + Chr$(grille(j + 1, k)) + Chr$(grille(j + 2, k)) End If If Len(Text4.Text) > 4 Then Randomize aleatoire = Int((2 * Rnd) + 1) 'entre 1 et deux If aleatoire >= 2 Then 'corrige et favorise le choix vertical aleatoire = 2 End If If aleatoire = 1 Then Text5.Text = Mid(Text4.Text, 1, 4) 'codage horizontal Else Text5.Text = Mid(Text4.Text, 5, 4) ' codage vertical End If 'prends les quatres premiers caractères Else Text5.Text = Mid(Text4.Text, 1, 4) End If stockchaine = stockchaine + Format(Len(Text5.Text)) 'affiche le numéro de la permutation Text6.Text = Format(typepermutations(j, k)) stockpermut = stockpermut + Format(Text6.Text, "000") 'affiche la clé en cour For p = 1 To 10 For q = 1 To 10 Text7.Text = Text7.Text + Chr(grille(p, q)) + Chr(32) Next q Next p 'affiche le texte codé Text8.Text = Text8.Text + Text5.Text 'modifie la grille modifgrille Val(Text6.Text) End Select horsprocedure: End Sub -------------------------------------------------------- LES PERMUTATIONS DE CDP Public Sub modifgrille(numcase As Integer) If permut = 0 Then 'Gestion des permutations If numcase = 1 Then ' P1 échange 1,1 avec 3,3 swapcase(1) = grille(1, 1) grille(1, 1) = grille(3, 3) grille(3, 3) = swapcase(1) 'échange demi colonne gauche basse 1 avec demi colonne droite baute 6 For i = 1 To 5 swapcase(i) = grille(i, 6) grille(i, 6) = grille(i + 5, 1) grille(i + 5, 1) = swapcase(i) Next i ElseIf numcase = 23 Then 'P2 échange 3,3 avec 5,5 swapcase(1) = grille(3, 3) grille(3, 3) = grille(5, 5) grille(5, 5) = swapcase(1) 'échange demi colonne gauche basse 2 avec demi colonne droite baute 7 For i = 1 To 5 swapcase(i) = grille(i, 7) grille(i, 7) = grille(i + 5, 2) grille(i + 5, 2) = swapcase(i) Next i ElseIf numcase = 45 Then 'P3 échange 5,5 avec 7,7 swapcase(1) = grille(5, 5) grille(5, 5) = grille(7, 7) grille(7, 7) = swapcase(1) 'échange demi colonne gauche basse 3 avec demi colonne droite baute 8 For i = 1 To 5 swapcase(i) = grille(i, 8) grille(i, 8) = grille(i + 5, 3) grille(i + 5, 3) = swapcase(i) Next i ElseIf numcase = 67 Then 'P4 échange 7,7 avec 9,9 swapcase(1) = grille(7, 7) grille(7, 7) = grille(9, 9) grille(9, 9) = swapcase(1) 'échange demi colonne gauche basse 4 avec demi colonne droite baute 9 For i = 1 To 5 swapcase(i) = grille(i, 9) grille(i, 9) = grille(i + 5, 4) grille(i + 5, 4) = swapcase(i) Next i ElseIf numcase = 89 Then 'P5 échange 9,9 avec 2,2 swapcase(1) = grille(9, 9) grille(9, 9) = grille(2, 2) grille(2, 2) = swapcase(1) 'échange demi colonne gauche basse 5 avec demi colonne droite baute 10 For i = 1 To 5 swapcase(i) = grille(i, 10) grille(i, 10) = grille(i + 5, 5) grille(i + 5, 5) = swapcase(i) Next i ElseIf numcase = 12 Then 'P6 échange 2,2 avec 8,8 swapcase(1) = grille(2, 2) grille(2, 2) = grille(8, 8) grille(8, 8) = swapcase(1) 'echange demi rangée 10 gauche avec demi rangée 9 droite For i = 1 To 5 swapcase(i) = grille(10, i) grille(10, i) = grille(9, i + 5) grille(9, i + 5) = swapcase(i) Next i ElseIf numcase = 78 Then 'P7 échange 8,8 avec 10,10 swapcase(1) = grille(8, 8) grille(8, 8) = grille(10, 10) grille(10, 10) = swapcase(1) 'echange demi rangée 7 gauche avec demi rangée 6 droite For i = 1 To 5 swapcase(i) = grille(7, i) grille(7, i) = grille(6, i + 5) grille(6, i + 5) = swapcase(i) Next i ElseIf numcase = 100 Then 'P8 échange 10,10 avec 4,4 swapcase(1) = grille(10, 10) grille(10, 10) = grille(4, 4) grille(4, 4) = swapcase(1) 'echange demi rangée 2 gauche avec demi rangée 1 droite For i = 1 To 5 swapcase(i) = grille(2, i) grille(2, i) = grille(1, i + 5) grille(1, i + 5) = swapcase(i) Next i ElseIf numcase = 34 Then 'P9 échange 4,4 avec 6,6 swapcase(1) = grille(4, 4) grille(4, 4) = grille(6, 6) grille(6, 6) = swapcase(1) 'echange demi rangée 8 gauche avec demi rangée 7 droite For i = 1 To 5 swapcase(i) = grille(8, i) grille(8, i) = grille(7, i + 5) grille(7, i + 5) = swapcase(i) Next i ElseIf numcase = 56 Then 'P10 échange 6,6 avec 3,8 swapcase(1) = grille(6, 6) grille(6, 6) = grille(3, 8) grille(3, 8) = swapcase(1) 'échange demi colonne haute 1 avec demi colonne basse 2 For i = 1 To 5 swapcase(i) = grille(i, 1) grille(i, 1) = grille(i + 5, 2) grille(i + 5, 2) = swapcase(i) Next i ElseIf numcase = 28 Then 'P11 échange 3,8 avec 8,3 swapcase(1) = grille(3, 8) grille(3, 8) = grille(8, 3) grille(8, 3) = swapcase(1) 'échange demi colonne haute 5 avec demi colonne basse 6 For i = 1 To 5 swapcase(i) = grille(i, 5) grille(i, 5) = grille(i + 5, 6) grille(i + 5, 6) = swapcase(i) Next i ElseIf numcase = 73 Then 'P12 échange 8,3 avec 1,10 swapcase(1) = grille(8, 3) grille(8, 3) = grille(1, 10) grille(1, 10) = swapcase(1) 'échange demi colonne haute 7 avec demi colonne basse 8 For i = 1 To 5 swapcase(i) = grille(i, 7) grille(i, 7) = grille(i + 5, 8) grille(i + 5, 8) = swapcase(i) Next i ElseIf numcase = 10 Then 'P13 échange 1,10 avec 9,2 swapcase(1) = grille(1, 10) grille(1, 10) = grille(9, 2) grille(9, 2) = swapcase(1) 'echange demi rangée 6 gauche avec demi rangée 5 droite For i = 1 To 5 swapcase(i) = grille(6, i) grille(6, i) = grille(5, i + 5) grille(5, i + 5) = swapcase(i) Next i ElseIf numcase = 82 Then 'P14 échange 9,2 avec 7,4 swapcase(1) = grille(9, 2) grille(9, 2) = grille(7, 4) grille(7, 4) = swapcase(1) 'échange demi colonne haute 1 avec demi colonne basse 6 For i = 1 To 5 swapcase(i) = grille(i, 1) grille(i, 1) = grille(i + 5, 6) grille(i + 5, 6) = swapcase(i) Next i ElseIf numcase = 64 Then 'P15 échange 7,4 avec 2,9 swapcase(1) = grille(7, 4) grille(7, 4) = grille(2, 9) grille(2, 9) = swapcase(1) 'échange demi colonne haute 6 avec demi colonne basse 7 For i = 1 To 5 swapcase(i) = grille(i, 6) grille(i, 6) = grille(i + 5, 7) grille(i + 5, 7) = swapcase(i) Next i ElseIf numcase = 19 Then 'P16 échange 2,9 avec 10,1 swapcase(1) = grille(2, 9) grille(2, 9) = grille(10, 1) grille(10, 1) = swapcase(1) 'échange demi colonne haute 2 avec demi colonne basse 8 For i = 1 To 5 swapcase(i) = grille(i, 2) grille(i, 2) = grille(i + 5, 8) grille(i + 5, 8) = swapcase(i) Next i ElseIf numcase = 91 Then 'P17 échange 10,1 avec 5,6 swapcase(1) = grille(10, 1) grille(10, 1) = grille(5, 6) grille(5, 6) = swapcase(1) 'échange demi colonne haute 9 avec demi colonne basse 10 For i = 1 To 5 swapcase(i) = grille(i, 9) grille(i, 9) = grille(i + 5, 10) grille(i + 5, 10) = swapcase(i) Next i ElseIf numcase = 46 Then 'P18 échange 5,6 avec 6,5 swapcase(1) = grille(5, 6) grille(5, 6) = grille(6, 5) grille(6, 5) = swapcase(1) 'echange rangée 2 avec rangée 3 For i = 1 To 10 swapcase(i) = grille(2, i) grille(2, i) = grille(3, i) grille(3, i) = swapcase(i) Next i ElseIf numcase = 55 Then 'P19 échange 6,5 avec 4,7 swapcase(1) = grille(6, 5) grille(6, 5) = grille(4, 7) grille(4, 7) = swapcase(1) 'echange rangée 9 avec rangée 10 For i = 1 To 10 swapcase(i) = grille(9, i) grille(9, i) = grille(10, i) grille(10, i) = swapcase(i) Next i ElseIf numcase = 37 Then 'P20 échange 4,7 avec 1,2 swapcase(1) = grille(4, 7) grille(4, 7) = grille(1, 2) grille(1, 2) = swapcase(1) 'echange rangée 7 avec rangée 8 For i = 1 To 10 swapcase(i) = grille(7, i) grille(7, i) = grille(8, i) grille(8, i) = swapcase(i) Next i ElseIf numcase = 2 Then 'P21 échange 1,2 avec 2,1 swapcase(1) = grille(1, 2) grille(1, 2) = grille(2, 1) grille(2, 1) = swapcase(1) 'échange colonne 5 avec colonne6 For i = 1 To 10 swapcase(i) = grille(i, 5) grille(i, 5) = grille(i, 6) grille(i, 6) = swapcase(i) Next i ElseIf numcase = 11 Then 'P22 échange 2,1 avec 9,10 swapcase(1) = grille(2, 1) grille(2, 1) = grille(9, 10) grille(9, 10) = swapcase(1) 'échange colonne 4 avec colonne7 For i = 1 To 10 swapcase(i) = grille(i, 4) grille(i, 4) = grille(i, 7) grille(i, 7) = swapcase(i) Next i ElseIf numcase = 90 Then 'P23 échange 9,10 avec 10,9 swapcase(1) = grille(9, 10) grille(9, 10) = grille(10, 9) grille(10, 9) = swapcase(1) 'échange colonne 1 avec colonne2 For i = 1 To 10 swapcase(i) = grille(i, 1) grille(i, 1) = grille(i, 2) grille(i, 2) = swapcase(i) Next i ElseIf numcase = 99 Then 'P24 échange 10,9 avec 1,3 swapcase(1) = grille(10, 9) grille(10, 9) = grille(1, 3) grille(1, 3) = swapcase(1) 'echange rangée 3 avec rangée 7 For i = 1 To 10 swapcase(i) = grille(3, i) grille(3, i) = grille(7, i) grille(7, i) = swapcase(i) Next i ElseIf numcase = 3 Then 'P25 échange 1,3 avec 3,1 swapcase(1) = grille(1, 3) grille(1, 3) = grille(3, 1) grille(3, 1) = swapcase(1) 'échange colonne 4 avec colonne 10 For i = 1 To 10 swapcase(i) = grille(i, 4) grille(i, 4) = grille(i, 10) grille(i, 10) = swapcase(i) Next i ElseIf numcase = 21 Then 'P26 échange 3,1 avec 8,10 swapcase(1) = grille(3, 1) grille(3, 1) = grille(8, 10) grille(8, 10) = swapcase(1) 'echange rangée 1 avec rangée 10 For i = 1 To 10 swapcase(i) = grille(1, i) grille(1, i) = grille(10, i) grille(10, i) = swapcase(i) Next i ElseIf numcase = 80 Then 'P27 échange 8,10 avec 10,8 swapcase(1) = grille(8, 10) grille(8, 10) = grille(10, 8) grille(10, 8) = swapcase(1) 'échange colonne 2 avec colonne 6 For i = 1 To 10 swapcase(i) = grille(i, 2) grille(i, 2) = grille(i, 6) grille(i, 6) = swapcase(i) Next i ElseIf numcase = 98 Then 'P28 échange 10,8 avec 4,5 swapcase(1) = grille(10, 8) grille(10, 8) = grille(4, 5) grille(4, 5) = swapcase(1) 'échange colonne 2 avec colonne 9 For i = 1 To 10 swapcase(i) = grille(i, 2) grille(i, 2) = grille(i, 9) grille(i, 9) = swapcase(i) Next i ElseIf numcase = 35 Then 'P29 échange 4,5 avec 7,6 swapcase(1) = grille(4, 5) grille(4, 5) = grille(7, 6) grille(7, 6) = swapcase(1) 'echange rangée 2 avec rangée 9 For i = 1 To 10 swapcase(i) = grille(2, i) grille(2, i) = grille(9, i) grille(9, i) = swapcase(i) Next i ElseIf numcase = 66 Then 'P30 échange 7,6 avec 5,4 swapcase(1) = grille(7, 6) grille(7, 6) = grille(5, 4) grille(5, 4) = swapcase(1) 'échange colonne 3 avec colonne 7 For i = 1 To 10 swapcase(i) = grille(i, 3) grille(i, 3) = grille(i, 7) grille(i, 7) = swapcase(i) Next i ElseIf numcase = 44 Then 'P31 échange 5,4 avec 6,7 swapcase(1) = grille(5, 4) grille(5, 4) = grille(6, 7) grille(6, 7) = swapcase(1) 'echange rangée 4 avec rangée 7 For i = 1 To 10 swapcase(i) = grille(4, i) grille(4, i) = grille(7, i) grille(7, i) = swapcase(i) Next i ElseIf numcase = 57 Then 'P32 échange 6,7 avec 7,5 swapcase(1) = grille(6, 7) grille(6, 7) = grille(7, 5) grille(7, 5) = swapcase(1) 'échange colonne 3 avec colonne 6 For i = 1 To 10 swapcase(i) = grille(i, 3) grille(i, 3) = grille(i, 6) grille(i, 6) = swapcase(i) Next i ElseIf numcase = 65 Then 'P33 échange 7,5 avec 4,6 swapcase(1) = grille(7, 5) grille(7, 5) = grille(4, 6) grille(4, 6) = swapcase(1) 'echange rangée 5 avec rangée 6 For i = 1 To 10 swapcase(i) = grille(5, i) grille(5, i) = grille(6, i) grille(6, i) = swapcase(i) Next i ElseIf numcase = 36 Then 'P34 échange 4,6 avec 6,4 swapcase(1) = grille(4, 6) grille(4, 6) = grille(6, 4) grille(6, 4) = swapcase(1) 'echange rangée 5 avec rangée 10 For i = 1 To 10 swapcase(i) = grille(5, i) grille(5, i) = grille(10, i) grille(10, i) = swapcase(i) Next i ElseIf numcase = 54 Then 'P35 échange 6,4 avec 5,7 swapcase(1) = grille(6, 4) grille(6, 4) = grille(5, 7) grille(5, 7) = swapcase(1) 'échange colonne 3 avec colonne 8 For i = 1 To 10 swapcase(i) = grille(i, 3) grille(i, 3) = grille(i, 8) grille(i, 8) = swapcase(i) Next i ElseIf numcase = 47 Then 'P36 échange 5,7 avec 1,9 swapcase(1) = grille(5, 7) grille(5, 7) = grille(1, 9) grille(1, 9) = swapcase(1) 'echange rangée 2 avec rangée 4 For i = 1 To 10 swapcase(i) = grille(2, i) grille(2, i) = grille(4, i) grille(4, i) = swapcase(i) Next i ElseIf numcase = 9 Then 'P37 échange 1,9 avec 2,10 swapcase(1) = grille(1, 9) grille(1, 9) = grille(2, 10) grille(2, 10) = swapcase(1) 'échange colonne 7 avec colonne 8 For i = 1 To 10 swapcase(i) = grille(i, 7) grille(i, 7) = grille(i, 8) grille(i, 8) = swapcase(i) Next i ElseIf numcase = 20 Then 'P38 échange 2,10 avec 9,1 swapcase(1) = grille(2, 10) grille(2, 10) = grille(9, 1) grille(9, 1) = swapcase(1) 'échange colonne 2 avec colonne 6 For i = 1 To 10 swapcase(i) = grille(i, 2) grille(i, 2) = grille(i, 6) grille(i, 6) = swapcase(i) Next i ElseIf numcase = 81 Then 'P39 échange 9,1 avec 10,2 swapcase(1) = grille(9, 1) grille(9, 1) = grille(10, 2) grille(10, 2) = swapcase(1) 'échange colonne 3 avec colonne 4 For i = 1 To 10 swapcase(i) = grille(i, 3) grille(i, 3) = grille(i, 4) grille(i, 4) = swapcase(i) Next i ElseIf numcase = 92 Then 'P40 échange 10,2 avec 1,8 swapcase(1) = grille(10, 2) grille(10, 2) = grille(1, 8) grille(1, 8) = swapcase(1) 'echange rangée 3 avec rangée 8 For i = 1 To 10 swapcase(i) = grille(3, i) grille(3, i) = grille(8, i) grille(8, i) = swapcase(i) Next i ElseIf numcase = 8 Then 'P41 échange 1,8 avec 3,10 swapcase(1) = grille(1, 8) grille(1, 8) = grille(3, 10) grille(3, 10) = swapcase(1) 'echange rangée 4 avec rangée 5 For i = 1 To 10 swapcase(i) = grille(4, i) grille(4, i) = grille(5, i) grille(5, i) = swapcase(i) Next i ElseIf numcase = 30 Then 'P42 échange 3,10 avec 8,1 swapcase(1) = grille(3, 10) grille(3, 10) = grille(8, 1) grille(8, 1) = swapcase(1) 'echange rangée 1 avec rangée 10 For i = 1 To 10 swapcase(i) = grille(1, i) grille(1, i) = grille(10, i) grille(10, i) = swapcase(i) Next i ElseIf numcase = 71 Then 'P43 échange 8,1 avec 10,3 swapcase(1) = grille(8, 1) grille(8, 1) = grille(10, 3) grille(10, 3) = swapcase(1) 'echange rangée 6 avec rangée 7 For i = 1 To 10 swapcase(i) = grille(6, i) grille(6, i) = grille(7, i) grille(7, i) = swapcase(i) Next i ElseIf numcase = 93 Then 'P44 échange 10,3 avec 3,2 swapcase(1) = grille(10, 3) grille(10, 3) = grille(3, 2) grille(3, 2) = swapcase(1) 'echange rangée 5 avec rangée 6 For i = 1 To 10 swapcase(i) = grille(5, i) grille(5, i) = grille(6, i) grille(6, i) = swapcase(i) Next i ElseIf numcase = 22 Then 'P45 échange 3,2 avec 2,3 swapcase(1) = grille(3, 2) grille(3, 2) = grille(2, 3) grille(2, 3) = swapcase(1) 'echange rangée 4 avec rangée 5 For i = 1 To 10 swapcase(i) = grille(4, i) grille(4, i) = grille(5, i) grille(5, i) = swapcase(i) Next i ElseIf numcase = 13 Then 'P46 échange 2,3 avec 9,8 swapcase(1) = grille(2, 3) grille(2, 3) = grille(9, 8) grille(9, 8) = swapcase(1) 'echange rangée 3 avec rangée 4 For i = 1 To 10 swapcase(i) = grille(3, i) grille(3, i) = grille(4, i) grille(4, i) = swapcase(i) Next i ElseIf numcase = 88 Then 'P47 échange 9,8 avec 8,9 swapcase(1) = grille(9, 8) grille(9, 8) = grille(8, 9) grille(8, 9) = swapcase(1) 'échange colonne 1 avec colonne 10 For i = 1 To 10 swapcase(i) = grille(i, 1) grille(i, 1) = grille(i, 10) grille(i, 10) = swapcase(i) Next i ElseIf numcase = 79 Then 'P48 échange 8,9 avec 9,3 swapcase(1) = grille(8, 9) grille(8, 9) = grille(9, 3) grille(9, 3) = swapcase(1) 'échange colonne 4 avec colonne 10 For i = 1 To 10 swapcase(i) = grille(i, 4) grille(i, 4) = grille(i, 10) grille(i, 10) = swapcase(i) Next i ElseIf numcase = 83 Then 'P49 échange 9,3 avec 8,2 swapcase(1) = grille(9, 3) grille(9, 3) = grille(8, 2) grille(8, 2) = swapcase(1) 'échange colonne 1 avec colonne 4 For i = 1 To 10 swapcase(i) = grille(i, 1) grille(i, 1) = grille(i, 4) grille(i, 4) = swapcase(i) Next i ElseIf numcase = 72 Then 'P50 échange 8,2 avec 2,8 swapcase(1) = grille(8, 2) grille(8, 2) = grille(2, 8) grille(2, 8) = swapcase(1) 'echange rangée 3 avec rangée 7 For i = 1 To 10 swapcase(i) = grille(3, i) grille(3, i) = grille(7, i) grille(7, i) = swapcase(i) Next i ElseIf numcase = 18 Then 'P51 échange 2,8 avec 3,9 swapcase(1) = grille(2, 8) grille(2, 8) = grille(3, 9) grille(3, 9) = swapcase(1) 'échange colonne 4 avec colonne 5 For i = 1 To 10 swapcase(i) = grille(i, 4) grille(i, 4) = grille(i, 5) grille(i, 5) = swapcase(i) Next i ElseIf numcase = 29 Then 'P52 échange 3,9 avec 8,7 swapcase(1) = grille(3, 9) grille(3, 9) = grille(8, 7) grille(8, 7) = swapcase(1) 'échange colonne 1 avec colonne 8 For i = 1 To 10 swapcase(i) = grille(i, 1) grille(i, 1) = grille(i, 8) grille(i, 8) = swapcase(i) Next i ElseIf numcase = 77 Then 'P53 échange 8,7 avec 3,4 swapcase(1) = grille(8, 7) grille(8, 7) = grille(3, 4) grille(3, 4) = swapcase(1) 'echange rangée 1 avec rangée 10 For i = 1 To 10 swapcase(i) = grille(1, i) grille(1, i) = grille(10, i) grille(10, i) = swapcase(i) Next i ElseIf numcase = 24 Then 'P54 échange 3,4 avec 4,8 swapcase(1) = grille(3, 4) grille(3, 4) = grille(4, 8) grille(4, 8) = swapcase(1) 'echange rangée 2 avec rangée 5 For i = 1 To 10 swapcase(i) = grille(2, i) grille(2, i) = grille(5, i) grille(5, i) = swapcase(i) Next i ElseIf numcase = 38 Then 'P55 échange 4,8 avec 7,3 swapcase(1) = grille(4, 8) grille(4, 8) = grille(7, 3) grille(7, 3) = swapcase(1) 'echange rangée 5 avec rangée 6 For i = 1 To 10 swapcase(i) = grille(5, i) grille(5, i) = grille(6, i) grille(6, i) = swapcase(i) Next i ElseIf numcase = 63 Then 'P56' échange 7,3 avec 3,7 swapcase(1) = grille(7, 3) grille(7, 3) = grille(3, 7) grille(3, 7) = swapcase(1) 'echange rangée 4 avec rangée 5 For i = 1 To 10 swapcase(i) = grille(4, i) grille(4, i) = grille(5, i) grille(5, i) = swapcase(i) Next i ElseIf numcase = 27 Then 'P57' échange 3,7 avec 7,8 swapcase(1) = grille(3, 7) grille(3, 7) = grille(7, 8) grille(7, 8) = swapcase(1) 'echange rangée 2 avec rangée 4 For i = 1 To 10 swapcase(i) = grille(2, i) grille(2, i) = grille(4, i) grille(4, i) = swapcase(i) Next i ElseIf numcase = 68 Then 'P58' échange 7,8 avec 8,4 swapcase(1) = grille(7, 8) grille(7, 8) = grille(8, 4) grille(8, 4) = swapcase(1) 'echange rangée 1 avec rangée 6 For i = 1 To 10 swapcase(i) = grille(1, i) grille(1, i) = grille(6, i) grille(6, i) = swapcase(i) Next i ElseIf numcase = 74 Then 'P59' échange 8,4 avec 4,3 swapcase(1) = grille(8, 4) grille(8, 4) = grille(4, 3) grille(4, 3) = swapcase(1) 'echange rangée 6 avec rangée 9 For i = 1 To 10 swapcase(i) = grille(6, i) grille(6, i) = grille(9, i) grille(9, i) = swapcase(i) Next i ElseIf numcase = 33 Then 'P60' échange 4,3 avec 3,5 swapcase(1) = grille(4, 3) grille(4, 3) = grille(3, 5) grille(3, 5) = swapcase(1) 'échange colonne 4 avec colonne 6 For i = 1 To 10 swapcase(i) = grille(i, 4) grille(i, 4) = grille(i, 6) grille(i, 6) = swapcase(i) Next i ElseIf numcase = 25 Then 'P61' échange 3,5 avec 5,8 swapcase(1) = grille(3, 5) grille(3, 5) = grille(5, 8) grille(5, 8) = swapcase(1) 'échange colonne 6 avec colonne 7 For i = 1 To 10 swapcase(i) = grille(i, 6) grille(i, 6) = grille(i, 7) grille(i, 7) = swapcase(i) Next i ElseIf numcase = 48 Then 'P62' échange 5,8 avec 8,6 swapcase(1) = grille(5, 8) grille(5, 8) = grille(8, 6) grille(8, 6) = swapcase(1) 'échange colonne 5 avec colonne 7 For i = 1 To 10 swapcase(i) = grille(i, 5) grille(i, 5) = grille(i, 7) grille(i, 7) = swapcase(i) Next i ElseIf numcase = 76 Then 'P63' échange 8,6 avec 6,3 swapcase(1) = grille(8, 6) grille(8, 6) = grille(6, 3) grille(6, 3) = swapcase(1) 'échange colonne 2 avec colonne 4 For i = 1 To 10 swapcase(i) = grille(i, 2) grille(i, 2) = grille(i, 4) grille(i, 4) = swapcase(i) Next i ElseIf numcase = 53 Then 'P64' échange 6,3 avec 3,6 swapcase(1) = grille(6, 3) grille(6, 3) = grille(3, 6) grille(3, 6) = swapcase(1) 'échange colonne 4 avec colonne 5 For i = 1 To 10 swapcase(i) = grille(i, 4) grille(i, 4) = grille(i, 5) grille(i, 5) = swapcase(i) Next i ElseIf numcase = 26 Then 'P65' échange 3,6 avec 6,8 swapcase(1) = grille(3, 6) grille(3, 6) = grille(6, 8) grille(6, 8) = swapcase(1) 'échange colonne 5 avec colonne 7 For i = 1 To 10 swapcase(i) = grille(i, 5) grille(i, 5) = grille(i, 7) grille(i, 7) = swapcase(i) Next i ElseIf numcase = 58 Then 'P66' échange 6,8 avec 8,5 swapcase(1) = grille(6, 8) grille(6, 8) = grille(8, 5) grille(8, 5) = swapcase(1) 'échange colonne 6 avec colonne 7 For i = 1 To 10 swapcase(i) = grille(i, 6) grille(i, 6) = grille(i, 7) grille(i, 7) = swapcase(i) Next i ElseIf numcase = 75 Then 'P67' échange 8,5 avec 5,3 swapcase(1) = grille(8, 5) grille(8, 5) = grille(5, 3) grille(5, 3) = swapcase(1) 'échange colonne 2 avec colonne 4 For i = 1 To 10 swapcase(i) = grille(i, 2) grille(i, 2) = grille(i, 4) grille(i, 4) = swapcase(i) Next i ElseIf numcase = 43 Then 'P68' échange 5,3 avec 2,4 swapcase(1) = grille(5, 3) grille(5, 3) = grille(2, 4) grille(2, 4) = swapcase(1) 'echange rangée 3 avec rangée 4 For i = 1 To 10 swapcase(i) = grille(3, i) grille(3, i) = grille(4, i) grille(4, i) = swapcase(i) Next i ElseIf numcase = 14 Then 'P69' échange 2,4 avec 4,9 swapcase(1) = grille(2, 4) grille(2, 4) = grille(4, 9) grille(4, 9) = swapcase(1) 'echange rangée 1 avec rangée 3 For i = 1 To 10 swapcase(i) = grille(1, i) grille(1, i) = grille(3, i) grille(3, i) = swapcase(i) Next i ElseIf numcase = 39 Then 'P70' échange 4,9 avec 9,7 swapcase(1) = grille(4, 9) grille(4, 9) = grille(9, 7) grille(9, 7) = swapcase(1) 'echange rangée 5 avec rangée 8 For i = 1 To 10 swapcase(i) = grille(5, i) grille(5, i) = grille(8, i) grille(8, i) = swapcase(i) Next i ElseIf numcase = 87 Then 'P71' échange 9,7 avec 7,2 swapcase(1) = grille(9, 7) grille(9, 7) = grille(7, 2) grille(7, 2) = swapcase(1) 'echange rangée 6 avec rangée 8 For i = 1 To 10 swapcase(i) = grille(6, i) grille(6, i) = grille(8, i) grille(8, i) = swapcase(i) Next i ElseIf numcase = 62 Then 'P72' échange 7,2 avec 2,5 swapcase(1) = grille(7, 2) grille(7, 2) = grille(2, 5) grille(2, 5) = swapcase(1) 'echange rangée 3 avec rangée 9 For i = 1 To 10 swapcase(i) = grille(3, i) grille(3, i) = grille(9, i) grille(9, i) = swapcase(i) Next i ElseIf numcase = 15 Then 'P73' échange 2,5 avec 5,9 swapcase(1) = grille(2, 5) grille(2, 5) = grille(5, 9) grille(5, 9) = swapcase(1) 'echange rangée 3 avec rangée 4 For i = 1 To 10 swapcase(i) = grille(3, i) grille(3, i) = grille(4, i) grille(4, i) = swapcase(i) Next i ElseIf numcase = 49 Then 'P74' échange 5,9 avec 9,6 swapcase(1) = grille(5, 9) grille(5, 9) = grille(9, 6) grille(9, 6) = swapcase(1) 'echange rangée 6 avec rangée 7 For i = 1 To 10 swapcase(i) = grille(6, i) grille(6, i) = grille(7, i) grille(7, i) = swapcase(i) Next i ElseIf numcase = 86 Then 'P75' échange 9,6 avec 6,2 swapcase(1) = grille(9, 6) grille(9, 6) = grille(6, 2) grille(6, 2) = swapcase(1) 'echange rangée 7 avec rangée 8 For i = 1 To 10 swapcase(i) = grille(7, i) grille(7, i) = grille(8, i) grille(8, i) = swapcase(i) Next i ElseIf numcase = 52 Then 'P76' échange 6,2 avec 2,6 swapcase(1) = grille(6, 2) grille(6, 2) = grille(2, 6) grille(2, 6) = swapcase(1) 'echange rangée 1 avec rangée 3 For i = 1 To 10 swapcase(i) = grille(1, i) grille(1, i) = grille(3, i) grille(3, i) = swapcase(i) Next i ElseIf numcase = 16 Then 'P77' échange 2,6 avec 6,9 swapcase(1) = grille(2, 6) grille(2, 6) = grille(6, 9) grille(6, 9) = swapcase(1) 'echange rangée 3 avec rangée 5 For i = 1 To 10 swapcase(i) = grille(3, i) grille(3, i) = grille(5, i) grille(5, i) = swapcase(i) Next i ElseIf numcase = 59 Then 'P78' échange 6,9 avec 9,5 swapcase(1) = grille(6, 9) grille(6, 9) = grille(9, 5) grille(9, 5) = swapcase(1) 'echange rangée 7 avec rangée 8 For i = 1 To 10 swapcase(i) = grille(7, i) grille(7, i) = grille(8, i) grille(8, i) = swapcase(i) Next i ElseIf numcase = 85 Then 'P79' échange 9,5 avec 5,2 swapcase(1) = grille(9, 5) grille(9, 5) = grille(5, 2) grille(5, 2) = swapcase(1) 'echange rangée 6 avec rangée 7 For i = 1 To 10 swapcase(i) = grille(6, i) grille(6, i) = grille(7, i) grille(7, i) = swapcase(i) Next i ElseIf numcase = 42 Then 'P80' échange 5,2 avec 2,7 swapcase(1) = grille(5, 2) grille(5, 2) = grille(2, 7) grille(2, 7) = swapcase(1) 'echange rangée 3 avec rangée 4 For i = 1 To 10 swapcase(i) = grille(3, i) grille(3, i) = grille(4, i) grille(4, i) = swapcase(i) Next i ElseIf numcase = 17 Then 'P81' échange 2,7 avec 7,9 swapcase(1) = grille(2, 7) grille(2, 7) = grille(7, 9) grille(7, 9) = swapcase(1) 'echange rangée 8 avec rangée 9 For i = 1 To 10 swapcase(i) = grille(8, i) grille(8, i) = grille(9, i) grille(9, i) = swapcase(i) Next i ElseIf numcase = 69 Then 'P82' échange 7,9 avec 9,4 swapcase(1) = grille(7, 9) grille(7, 9) = grille(9, 4) grille(9, 4) = swapcase(1) 'echange rangée 8 avec rangée 10 For i = 1 To 10 swapcase(i) = grille(8, i) grille(8, i) = grille(10, i) grille(10, i) = swapcase(i) Next i ElseIf numcase = 84 Then 'P83' échange 9,4 avec 4,2 swapcase(1) = grille(9, 4) grille(9, 4) = grille(4, 2) grille(4, 2) = swapcase(1) 'echange rangée 5 avec rangée 8 For i = 1 To 10 swapcase(i) = grille(5, i) grille(5, i) = grille(8, i) grille(8, i) = swapcase(i) Next i ElseIf numcase = 32 Then 'P84' échange 4,2 avec 1,4 swapcase(1) = grille(4, 2) grille(4, 2) = grille(1, 4) grille(1, 4) = swapcase(1) 'echange rangée 2 avec rangée 3 For i = 1 To 10 swapcase(i) = grille(2, i) grille(2, i) = grille(3, i) grille(3, i) = swapcase(i) Next i ElseIf numcase = 4 Then 'P85' échange 1,4 avec 4,10 swapcase(1) = grille(1, 4) grille(1, 4) = grille(4, 10) grille(4, 10) = swapcase(1) 'echange rangée 2 avec rangée 3 For i = 1 To 10 swapcase(i) = grille(2, i) grille(2, i) = grille(3, i) grille(3, i) = swapcase(i) Next i ElseIf numcase = 40 Then 'P86' échange 4,10 avec 10,7 swapcase(1) = grille(4, 10) grille(4, 10) = grille(10, 7) grille(10, 7) = swapcase(1) 'echange rangée 1 avec rangée 9 For i = 1 To 10 swapcase(i) = grille(1, i) grille(1, i) = grille(9, i) grille(9, i) = swapcase(i) Next i ElseIf numcase = 97 Then 'P87' échange 10,7 avec 7,1 swapcase(1) = grille(10, 7) grille(10, 7) = grille(7, 1) grille(7, 1) = swapcase(1) 'echange rangée 8 avec rangée 9 For i = 1 To 10 swapcase(i) = grille(8, i) grille(8, i) = grille(9, i) grille(9, i) = swapcase(i) Next i ElseIf numcase = 61 Then 'P88' échange 7,1 avec 1,5 swapcase(1) = grille(7, 1) grille(7, 1) = grille(1, 5) grille(1, 5) = swapcase(1) 'echange rangée 2 avec rangée 6 For i = 1 To 10 swapcase(i) = grille(2, i) grille(2, i) = grille(6, i) grille(6, i) = swapcase(i) Next i ElseIf numcase = 5 Then 'P89' échange 1,5 avec 5,10 swapcase(1) = grille(1, 5) grille(1, 5) = grille(5, 10) grille(5, 10) = swapcase(1) 'echange rangée 3 avec rangée 4 For i = 1 To 10 swapcase(i) = grille(3, i) grille(3, i) = grille(4, i) grille(4, i) = swapcase(i) Next i ElseIf numcase = 50 Then 'P90' échange 5,10 avec 10,6 swapcase(1) = grille(5, 10) grille(5, 10) = grille(10, 6) grille(10, 6) = swapcase(1) 'echange rangée 6 avec rangée 9 For i = 1 To 10 swapcase(i) = grille(6, i) grille(6, i) = grille(9, i) grille(9, i) = swapcase(i) Next i ElseIf numcase = 96 Then 'P91' échange 10,6 avec 6,1 swapcase(1) = grille(10, 6) grille(10, 6) = grille(6, 1) grille(6, 1) = swapcase(1) 'echange rangée 7 avec rangée 9 For i = 1 To 10 swapcase(i) = grille(7, i) grille(7, i) = grille(9, i) grille(9, i) = swapcase(i) Next i ElseIf numcase = 51 Then 'P92' échange 6,1 avec 1,6 swapcase(1) = grille(6, 1) grille(6, 1) = grille(1, 6) grille(1, 6) = swapcase(1) 'echange rangée 2 avec rangée 5 For i = 1 To 10 swapcase(i) = grille(2, i) grille(2, i) = grille(5, i) grille(5, i) = swapcase(i) Next i ElseIf numcase = 6 Then 'P93' échange 1,6 avec 6,10 swapcase(1) = grille(1, 6) grille(1, 6) = grille(6, 10) grille(6, 10) = swapcase(1) 'echange rangée 2 avec rangée 3 For i = 1 To 10 swapcase(i) = grille(2, i) grille(2, i) = grille(3, i) grille(3, i) = swapcase(i) Next i ElseIf numcase = 60 Then 'P94' échange 6,10 avec 10,5 swapcase(1) = grille(6, 10) grille(6, 10) = grille(10, 5) grille(10, 5) = swapcase(1) 'echange rangée 4 avec rangée 5 For i = 1 To 10 swapcase(i) = grille(4, i) grille(4, i) = grille(5, i) grille(5, i) = swapcase(i) Next i ElseIf numcase = 95 Then 'P95' échange 10,5 avec 5,1 swapcase(1) = grille(10, 5) grille(10, 5) = grille(5, 1) grille(5, 1) = swapcase(1) 'echange rangée 7 avec rangée 8 For i = 1 To 10 swapcase(i) = grille(7, i) grille(7, i) = grille(8, i) grille(8, i) = swapcase(i) Next i ElseIf numcase = 41 Then 'P96' échange 5,1 avec 1,7 swapcase(1) = grille(5, 1) grille(5, 1) = grille(1, 7) grille(1, 7) = swapcase(1) 'echange rangée 2 avec rangée 3 For i = 1 To 10 swapcase(i) = grille(2, i) grille(2, i) = grille(3, i) grille(3, i) = swapcase(i) Next i ElseIf numcase = 7 Then 'P97' échange 1,7 avec 7,10 swapcase(1) = grille(1, 7) grille(1, 7) = grille(7, 10) grille(7, 10) = swapcase(1) 'echange rangée 3 avec rangée 6 For i = 1 To 10 swapcase(i) = grille(3, i) grille(3, i) = grille(6, i) grille(6, i) = swapcase(i) Next i ElseIf numcase = 70 Then 'P98' échange 7,10 avec 10,4 swapcase(1) = grille(7, 10) grille(7, 10) = grille(10, 4) grille(10, 4) = swapcase(1) 'echange rangée 8 avec rangée 9 For i = 1 To 10 swapcase(i) = grille(8, i) grille(8, i) = grille(9, i) grille(9, i) = swapcase(i) Next i ElseIf numcase = 94 Then 'P99' échange 10,4 avec 1,1 reboucle sur 1,1 swapcase(1) = grille(10, 4) grille(10, 4) = grille(1, 1) grille(1, 1) = swapcase(1) 'échange colonne 2 avec colonne 3 For i = 1 To 10 swapcase(i) = grille(i, 2) grille(i, 2) = grille(i, 3) grille(i, 3) = swapcase(i) Next i ElseIf numcase = 31 Then 'P100' échange 4,1 avec 1,1 ' reboucle sur 1,1 swapcase(1) = grille(4, 1) grille(4, 1) = grille(1, 1) grille(1, 1) = swapcase(1) 'échange colonne 9 avec colonne 10 For i = 1 To 10 swapcase(i) = grille(i, 9) grille(i, 9) = grille(i, 10) grille(i, 10) = swapcase(i) Next i End If ' des numéros de permutation End If ' de permut=1 ou zéro End Sub -------------------------------------------------------- LA PRODEDURE DE DECHIFFRAGE Public Sub decryptage() 'remise à zéro des variables t2 = "" t3 = "" t4 = "" t5 = "" t6 = "" t7 = "" 'Lis le premier caractère du fichier car1 = Left(texteadecoder, 1) 'Lis le deuxieme du fichier car2 = Mid(texteadecoder, 2, 1) t2 = car1 + car2 'recherche de la position du premier caractère For r1 = 1 To 10 For c1 = 1 To 10 If Asc(car1) = grille(r1, c1) Then GoTo sautcar1 'sort de la boucle End If Next c1 Next r1 sautcar1: t4 = "Caractère " + car1 + " trouvé en R" + Format(r1) + "-" + "C" + Format(c1) + Chr$(13) + Chr$(10) 'recherche de la position du deuxieme caractère For r2 = 1 To 10 For c2 = 1 To 10 If Asc(car2) = grille(r2, c2) Then GoTo sautcar2 'sort de la boucle End If Next c2 Next r2 sautcar2: 'affiche le résultat de la recherche pour les deux caractères t4 = t4 + "Caractère " + car2 + " trouvé en R" + Format(r2) + "-" + "C" + Format(c2) + Chr$(13) + Chr$(10) 'analyse le type de système de codage If r1 <> r2 And c1 <> c2 Then 'système LR-LC t4 = t4 + "Système détecté intersection Lettre Rangée - Lettre Colonne" cas = 1 ' pour le select case ElseIf r1 = r2 And c1 + 1 = c2 Then ' les deux caractères sont sur la même rangée et se touchent 'Lis le toisieme caractère du fichier car3 = Mid(texteadecoder, 3, 1) 'Lis le quatrieme du fichier car4 = Mid(texteadecoder, 4, 1) 'affiche la paire de caractère analysée 'recherche de la position du troisieme caractère For r3 = 1 To 10 For c3 = 1 To 10 If Asc(car3) = grille(r3, c3) Then GoTo sautcar3 'sort de la boucle End If Next c3 Next r3 sautcar3: t4 = t4 + "Caractère " + car3 + " trouvé en R" + Format(r3) + "-" + "C" + Format(c3) + Chr$(13) + Chr$(10) 'recherche de la position du quatrieme caractère For r4 = 1 To 10 For c4 = 1 To 10 If Asc(car4) = grille(r4, c4) Then GoTo sautcar4 'sort de la boucle End If Next c4 Next r4 sautcar4: t4 = t4 + "Caractère " + car4 + " trouvé en R" + Format(r4) + "-" + "C" + Format(c4) + Chr$(13) + Chr$(10) If c3 = c4 Then ' les deux caractères suivants sont sur la meme colonne cas CR-CC 'affiche la paire de caractère analysée t2 = car1 + car2 + car3 + car4 t4 = t4 + "Système détecté intersection Chaine Rangée - Chaine Colonne" cas = 2 ' pour le select case Else ' les deux caractères suivant sont sur la meme rangée t2 = car1 + car2 + car3 + car4 t4 = t4 + "Système détecté Lettre entre Chaine sur une rangée" cas = 5 ' pour le select case End If ElseIf r1 = r2 And c1 - c2 = -2 Then ' les deux caractères sont sur la même rangée et entourent la lettre 'système Lettre entre Lettre sur une rangée t4 = t4 + "Système détecté Lettre entre Lettres sur une rangée" cas = 3 ' pour le select case ElseIf c1 = c2 And r1 - r2 = -2 Then 'les deux caractères sont sur la même colonne et entourent la lettre 'système Lettre entre Lettre sur une colonne t4 = t4 + "Système détecté Lettre entre Lettres sur une colonne" cas = 4 ' pour le select case ElseIf c1 = c2 Then ' les deux caractères sont sur la même colonne t4 = t4 + "Système détecté Lettre entre Chaines sur une colonne" cas = 6 ' pour le select case Else Exit Sub End If ' des différents cas Select Case cas Case 1 'système LR-LC 'affiche le système t3 = "LR - LC" 'trouve la lettre t5 = Chr$(grille(r1, c2)) 'affiche le numéro de la permutation t6 = Format(typepermutations(r1, c2)) 'affiche la clé en cour For p = 1 To 10 For q = 1 To 10 t7 = t7 + Chr(grille(p, q)) + Chr(32) Next q Next p 'affiche le texte décodé t8 = t8 + t5 'modifie la grille modifgrille Val(t6) 'réduit le texte à décoder de 2 caractères texteadecoder = Right(texteadecoder, Len(texteadecoder) - 2) Case 2 'système CR-CC 'affiche le système t3 = "CR - CC" 'trouve la lettre t5 = Chr$(grille(r1, c3)) 'affiche le numéro de la permutation t6 = Format(typepermutations(r1, c3)) 'affiche la clé en cour For p = 1 To 10 For q = 1 To 10 t7 = t7 + Chr(grille(p, q)) + Chr(32) Next q Next p 'affiche le texte décodé t8 = t8 + t5 'modifie la grille modifgrille Val(t6) 'réduit le texte à décoder de 4 caractères texteadecoder = Right(texteadecoder, Len(texteadecoder) - 4) Case 3 'système L-E-L-R lettre entre lettres sur une rangée 'affiche le système t3 = "L-E-L-R" 'trouve la lettre t5 = Chr$(grille(r1, c1 + 1)) 'affiche le numéro de la permutation t6 = Format(typepermutations(r1, c1 + 1)) 'affiche la clé en cour For p = 1 To 10 For q = 1 To 10 t7 = t7 + Chr(grille(p, q)) + Chr(32) Next q Next p 'affiche le texte décodé t8 = t8 + t5 'modifie la grille modifgrille Val(t6) 'réduit le texte à décoder de 2 caractères texteadecoder = Right(texteadecoder, Len(texteadecoder) - 2) Case 4 'système L-E-L-C lettre entre lettres sur une colonne 'affiche le système t3 = "L-E-L-C" 'trouve la lettre t5 = Chr$(grille(r1 + 1, c1)) 'affiche le numéro de la permutation t6 = Format(typepermutations(r1 + 1, c1)) 'affiche la clé en cour For p = 1 To 10 For q = 1 To 10 t7 = t7 + Chr(grille(p, q)) + Chr(32) Next q Next p 'affiche le texte décodé t8 = t8 + t5 'modifie la grille modifgrille Val(t6) 'réduit le texte à décoder de 2 caractères texteadecoder = Right(texteadecoder, Len(texteadecoder) - 2) Case 5 'système L-E-C-R lettre entre chaines sur une rangée 'affiche le système t3 = "L-E-C-R" 'trouve la lettre t5 = Chr$(grille(r1, c3 - 1)) 'affiche le numéro de la permutation t6 = Format(typepermutations(r1, c3 - 1)) 'affiche la clé en cour For p = 1 To 10 For q = 1 To 10 t7 = t7 + Chr(grille(p, q)) + Chr(32) Next q Next p 'affiche le texte codé t8 = t8 + t5 'modifie la grille modifgrille Val(t6) 'réduit le texte à décoder de 4 caractères texteadecoder = Right(texteadecoder, Len(texteadecoder) - 4) Case 6 'système L-E-L-C lettre entre chaines sur une colonne 'affiche le système t3 = "L-E-C-C" 'trouve la lettre t5 = Chr$(grille(r1 + 2, c1)) 'affiche le numéro de la permutation t6 = Format(typepermutations(r1 + 2, c1)) 'affiche la clé en cour For p = 1 To 10 For q = 1 To 10 t7 = t7 + Chr(grille(p, q)) + Chr(32) Next q Next p 'affiche le texte codé t8 = t8 + t5 'modifie la grille modifgrille Val(t6) 'réduit le texte à décoder de 4 caractères texteadecoder = Right(texteadecoder, Len(texteadecoder) - 4) End Select End Sub