Pathfinder Studio, le successeur de Propagation

Pour que ça marche aussi avec les modes de propagation périphérique il faut scinder DecaleTop et Decale!Left en DecaleTopY, DecaleTopZ, et pareil pour le Left :

        If Y1 = 1 Then
        Shp2.ZOrder msoSendToBack
            DecaleTopY = 37.5
        ElseIf Y1 = -1 Then
            DecaleTopY = -37.5
        End If

        If Z1 = -1 Then
            Shp2.ZOrder msoSendToBack
            DecaleTopZ = 13.5
            DecaleLeftZ = -13.5
        ElseIf Z1 = 1 Then
            Shp2.ZOrder msoSendToBack
            DecaleTopZ = -13.5
            DecaleLeftZ = 13.5
        End If

        ' positionnement par rapport au dernier cube
        Shp2.Top = Shp1.Top + DecaleTopY + DecaleTopZ
        Shp2.Left = Shp1.Left + DecaleLeftY + DecaleLeftZ

Et bien voilà ! Vous ne vous arrêtez plus !

Avez vous essayé une grande taille ? Les coordonnées de départ devrait être en fonction de sa propre position dans le volume et en fonction de la taille de ce volume sinon en bordure d'écran les shapes vont se supperposer.

Sur ma version de votre programme, le shape finale je le place aux coordonnées de B2 en ayant figé la première ligne et première colonne.
De même, j'ai mis un Apllication.ScreenUpDating = false au début de code.

J'ai également dans la procédure calcul, supprimer la mise en couleur des adresses de chemin si ce n'est pas la feuille "grille" qui est active.

j'ai "réussi" à créer mon tableau X,Y,Z reprenant les données des différentes grilles, il me reste plus qu'à gérer la "prise de vu" et les changements du code pour la vision de face, de droite et de dessus.

Que de changement et d'évolution depuis le début de votre projet ! Bravo à vous et merci pour le clin d'œil sur la feuille "explications" !

@ bientôt

LouReeD

Voici les 3 vues !
Bon c'est un peu figé, du fait que je suis parti en dur sur une grille de 10 x 10 x 10.
Il me reste à trouver où se trouve les différentes tailles, comme cela je pourrai mettre en variables les différentes boucles !

Je trouve que c'est pas mal afin d'avoir une vue différente su le parcours est compliqué. Avec le tableau représentant la zone complète, on peut "facilement" faire les 3 vues manquantes !
Et comme je prends les données de la feuilles Grille, il n'est pas nécessaire de relancer la fabrique du chemin.

Le fichier :

@ bientôt

LouReeD

Bravo pour cette possibilité de générer 3 vues différentes et pour le soin apporté à la présentation !

Il ne me reste plus qu'a m'en inspirer pour avoir une version où l'on pourrait modifier les dimensions de la grille.

Une remarque aussi : lire les données dans les grilles est bien plus long que de ré effectuer un nouveau calcul pathfinding (une fois la feuille lue une première fois).

Pour ma part je me suis rendu compte d'une boulette dans mon code , suite à un ajout de dernière minute, dès que Z est >= à 10 les données de la grille sont effacées par ma procédure UserForm.obAlgo222_Click() quand on ré ouvre l'UserForm. En cause le WorkSheetFunction.Max(Grid.Range("Z_1")) qui ne trouve pas "Z_1" car se nom est remplacé par "Z_01" pour les grilles comportant de 10 à 99 de niveaux. Le On Error Resume Next évalue l'instruction suivant le Then càd Grid.Cells.ClearContents voici cette procédure :

Private Sub obAlgo222_Click()
    Dim Sum#
    Grid.Names("Algorithm").RefersTo = 222
    FrameRandom222.Visible = True
    FrameRandom211.Visible = False
    On Error Resume Next
    Sum = Application.WorksheetFunction.Sum(Grid.Range("Z_1"))
    If Sum <> Int(Sum) Then Grid.Cells.ClearContents: Exit Sub
    If Application.WorksheetFunction.Max(Grid.Range("Z_1")) > 32767 Then Grid.Cells.ClearContents
End Sub

En voici sa version corrigée :

Private Sub obAlgo222_Click()
    Dim Sum#
    Grid.Names("Algorithm").RefersTo = 222
    FrameRandom222.Visible = True
    FrameRandom211.Visible = False
    On Error GoTo Finish
    Sum = Application.WorksheetFunction.Sum(Grid.Range("Z_1"))
    If Sum <> Int(Sum) Then Grid.Cells.ClearContents: Exit Sub
    If Application.WorksheetFunction.Max(Grid.Range("Z_1")) > 32767 Then Grid.Cells.ClearContents
Finish:
End Sub
Shame on me !

@+
Rechercher des sujets similaires à "pathfinder studio successeur propagation"