Mon code ferme excel
Résolu
VicKing
-
Le Pingou Messages postés 12640 Date d'inscription Statut Contributeur Dernière intervention -
Le Pingou Messages postés 12640 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
je code le jeu du taquin en VBA avec excel, et je dois avoir une boucle infinie car une fois lancé, le programme ne s'arrete plus.
help pls !!!
voila mon code:
Si il existe une âme charitable qui a trouve mon erreur, il sera mon héros pendant loooongtemps!
Victor H
je code le jeu du taquin en VBA avec excel, et je dois avoir une boucle infinie car une fois lancé, le programme ne s'arrete plus.
help pls !!!
voila mon code:
Option Explicit
Sub jeuduTaquin_vba()
Dim Taquin(3, 3) As Integer
Dim continuer As Boolean
Dim x As Single
Dim case_vide_ligne As Integer
Dim case_vide_colonne As Integer
Dim ligne As Integer
Dim Nb As Integer
Dim colonne As Integer
Dim coup As Integer
Dim verification As Integer
Dim verification_ligne As Integer
Dim verification_colonne As Integer
Dim entree As Integer
Dim entree_ligne As Integer
Dim entree_colonne As Integer
Dim ind1 As Integer
Dim ind2 As Integer
Call MsgBox("Vous allez entrer dans le jeu du taquin dont le but est de résoudre un damier 3x3 aux valeurs aléatoires en un damier aux valeurs qui se suivent. Pour y arriver, vous avez une case vide, vous ne pouvez donc que déplacer une case adjacente à la case vide dans cette dernière. Le damier gagnant est comme suit")
Call MsgBox("la case comportant le 0 etant la case vide")
continuer = True
For ind1 = 1 To 3
For ind2 = 1 To 3
Taquin(ind1, ind2) = 0
Next
Next
entree = 0
entree_ligne = 1
entree_colonne = 1
Do While entree <= 8
Randomize
Nb = Int(7 * Rnd + 1)
If (Nb <> Taquin(1, 1)) And (Nb <> Taquin(1, 2)) And (Nb <> Taquin(1, 3)) And (Nb <> Taquin(2, 1)) And (Nb <> Taquin(2, 2)) And (Nb <> Taquin(2, 3)) And (Nb <> Taquin(3, 1)) And (Nb <> Taquin(3, 2)) And (Nb <> Taquin(3, 3)) Then
Taquin(entree_ligne, entree_colonne) = Nb
Cells(entree_ligne, entree_colonne).Value = Taquin(entree_ligne, entree_colonne)
entree = entree + 1
If entree_colonne = 3 Then
entree_colonne = 0
entree_ligne = entree_ligne + 1
End If
entree_colonne = entree_colonne + 1
End If
Loop
case_vide_ligne = 3
case_vide_colonne = 3
Do While continuer = True
Call MsgBox(Taquin(1, 1), Taquin(1, 2), Taquin(1, 3))
Call MsgBox(Taquin(2, 1), Taquin(2, 2), Taquin(2, 3))
Call MsgBox(Taquin(3, 1), Taquin(3, 2), Taquin(3, 3))
ligne = InputBox("entrer la ligne de la case a deplacer dans la case vide")
colonne = InputBox("entrer la colonne de la case a deplacer dans la case vide")
If (((case_vide_ligne = ligne) And (case_vide_colonne = colonne + 1)) Or ((case_vide_ligne = ligne) And (case_vide_colonne = colonne - 1)) Or ((case_vide_ligne = ligne + 1) And (case_vide_colonne = colonne)) Or ((case_vide_ligne = ligne - 1) And (case_vide_colonne = colonne))) Then
Taquin(case_vide_ligne, case_vide_colonne) = Taquin(ligne, colonne)
Taquin(ligne, colonne) = 0
case_vide_ligne = ligne
case_vide_colonne = colonne
coup = coup + 1
Else
Call MsgBox("la ligne et la colonne saisie ne correspondent pas a une case adjacente a la case vide")
End If
verification = 1
For verification_ligne = 1 To 3
For verification_colonne = 1 To 3
If Taquin(verification_ligne, verification_colonne) = verification Then
verification = verification + 1
End If
Next
Next
If verification = 8 Then
Call MsgBox("FELICITATIONS VOUS AVEZ COMPLETEZ LE JEU EN", coup, "COUPS")
continuer = False
End If
Loop
End Sub
Si il existe une âme charitable qui a trouve mon erreur, il sera mon héros pendant loooongtemps!
Victor H
Configuration: Windows / Chrome 81.0.4044.138
| EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Mon code ferme excel
- Code ascii - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide