Bonjour à tous,J'essaye de programmer à titre d'exo le pb des 8 reines. euh comme je débute c'est du lourd du point de vue algo

Voici mon pb qui n'est pas un problème d'algo mais de pile

Le code est un test de détection d'une reine sur le même ligne

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
 
 
       'test de la présence d'une reine dans une même ligne
   '==========================================================
   ''Calcul du numéro de la première case de la ligne. occup est le numéro de la case occupée par la reine
 result = occup - (occup Mod 8) + 1
 
    For x = result To result + 7
        'on ne teste pas la case ou on est
          If x = occup Then GoTo Xplus
         ' Test si une case est occupée.si oui on change de ligne
          If Not (Not pic(x).Picture) Then
                    MsgBox ("  Reine ligne!!!!")
                     'on enlève l'image
                        pic(occup).Picture = Nothing 'on change de ligne 
                       occup = occup + 8: result = occup - (occup Mod 8) + 1   ICI LE PB J'ai besoin  de relancer la boucle avec de nouveaux paramètres
                        pic(occup).Picture = LoadPicture(App.Path & "\Reine.jpg") 'Affichage
                   GoTo Xplus ' on reteste
         Else
         End If
Xplus:
     Next

Suite au test ligne 7 si une reine est détectée on change de ligne.A ce moment là il faut de nouveau retester mais les paramètres qui définissent le for x de la boucle ont changé.
J'ai essayé de mettre l'étiquette Xplus avant la boucle en faisant un set x =nothing mais cela crée une erreur d'incompatibilité et cela ne décharge pas la pile du next.
Ma question est
Y a-t-il un moyen technique de réinitialiser la boucle.

En espérant ne pas avoir été trop brumeux et en vous remerciant de m'avoir consacré de votre temps.