J'ai créé une macro qui crée des cellules vertes et calcule la distance de Manhattan entre la cellule verte et une cellule rouge, sachant qu'il y a plusieurs cellules vertes et plusieurs cellules rouge.
Il s'agit d'une double boucle qui parcourt un tableau et crée de manière aléatoire ces cellules vertes et calcule systématiquement la distance avec les cellules rouges.
Ce calcul se fait dans sur une deuxième feuille. Cependant j'ai remarqué qu'il n'est pas fait de manière automatiques pour toutes les cellules rouges étant donnée une cellule verte.

Est-ce un problème de mémoire ? Pouvez vous m'aider ?

Voici la partie concernée dans mon programme. Je peux vous mettre tout le programme avec la création des cellules rouges aussi mais je ne suis pas sûr que ce soit très pertinent, ce n'est qu'une histoire de seuil.

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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
i = 1
i_feuil2 = 1
j_feuil_2 = 1
' Coloration usines
For i = 1 To Range
    For j = 1 To Range
        valAleatoire = ((100) * Rnd + 1)
        If (valAleatoire > 95) Then
            Feuil1.Cells(i, j).Interior.Color = RGB(0, 255, 0)
            Feuil1.Cells(i, j).Value = " "
            ' recherche sur la carte des villes pour calculer leurs distances
            For ligne_villes = 1 To Range
                For colonne_villes = 1 To Range
                    ' Teste si la cellule est une ville
                    If (Feuil1.Cells(ligne_villes, colonne_villes).Interior.Color = RGB(255, 0, 0)) Then
 
                        ' calcul de la distance de Manhattan entre la ville et l'usine sur la deuxième feuille
                        Feuil2.Cells(i_feuil2, j_feuil_2).Value = Abs((ligne_villes - i)) + Abs((colonne_villes - j))
                        'Feuil2.Cells(i_feuil2, j_feuil_2).Value = 123
 
                        ' on se déplace à droite pour le calcul suivant de distance entre une autre ville et l'usine
                        j_feuil_2 = j_feuil_2 + 1
 
                    End If
 
                Next colonne_villes
 
            Next ligne_villes
            j_feuil_2 = 1
            i_feuil2 = i_feuil2 + 1
            'Feuil2.Cells(ligne_villes,colonne_villes).Value =
        End If
        ' on passe à l'usine suivante
 
    Next j
 
 
Next i
Et voici une capture d'écran :

Nom : gp_distances.png
Affichages : 109
Taille : 17,8 Ko