Message erreur indice n'apparitent pas a la selection

Résolu
bob_6831 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
bob_6831 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,


J'ai le message d'erreur cité en titre et je ne comprend pas pourquoi sa m'affiche. mon tableau semble bien déclarer en reference dans ma fonction. Si quelqun peut m'aider laisser moi savoir. Merci d'avance

l'erreur est en gras et souligné


Private Sub TestTrouverPlusProcheVoisin()
Dim pointVisites(1, 3) As Boolean
Dim tabMatrice(3, 3) As Double
Dim point As Integer
Dim pointproche As Integer

tabMatrice(1, 1) = 0
tabMatrice(1, 2) = 1.41421
tabMatrice(1, 3) = 2.82843
tabMatrice(2, 1) = 1.41421
tabMatrice(2, 2) = 0
tabMatrice(2, 3) = 1.41421
tabMatrice(3, 1) = 2.82843
tabMatrice(3, 2) = 1.41421
tabMatrice(3, 3) = 0

pointVisites(1, 1) = True
pointVisites(1, 2) = False
pointVisites(1, 3) = False

point = 1


Public Function TrouverPlusProcheVoisin(ByRef tabMatrice() As Double, _
                                        ByRef tabVisite() As Boolean, _
                                        ByVal pointDep As Integer, _
                                        ByRef pointproche As Integer) As Boolean


' pointDepart c'est l'indice dans notre test exemple 'point = 1

Dim i As Integer        'pour parcourir le tableau
Dim valMin As Double     ' valeur minimum



pointproche = LBound(tabMatrice)
valMin = constInfini  ' contient la valeur 10000
  
'Cette boucle passe a traver la matrice pour trouver la distance minimum
For i = 1 To UBound(tabMatrice, 1) ' To UBound(tabMatrice, 1) 'chaque ligne du tableau ' test
   <underline> <bold>If tabVisite(i) = False And tabMatrice(pointDep, i) < valMin Then</bold></underline>
       pointproche = i
       valMin = tabMatrice(pointDep, i)
    Else
       TrouverPlusProcheVoisin = False
    End If
        
Next i

TrouverPlusProcheVoisin = True
End Function

Call MsgBox(TrouverPlusProcheVoisin(tabMatrice, pointVisites, point, pointproche))
End Sub


Configuration: Windows / Chrome 98.0.4758.102


EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.
A voir également:

4 réponses

NHenry Messages postés 15219 Date d'inscription   Statut Modérateur Dernière intervention   365
 
Un peu de débuggage (F9 point d'arret, Shift+F9 espionner la variable F8 passer à la ligne suivante, ...)
tabVisite est passée en paramètre et est pointVisites qui est un tableau à 2 dimension, donc tu ne peux pas l’adresser avec une seule dimension.
1
bob_6831 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   1
 
Merci NHenry et désoler du trouble occasioner pour la lecture du code on prévisualisation il me le sortait bien.

Je ne suis pas sur de tout saisir. pcq mon tabVisite il fait référence a point de visite de la fonction private sub Testrouverplusprochevois.... alors il est senser être de même dimension non?

A moins je montre je dois t'avouer je suis débutant alors..
1
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour a vous deux,

mon tabVisite il fait référence a point de visite
NHenry vous a expliquez que vous utilisez tabVisite comme s'il etait a une seule dimension alors qu'il a deux dimensions.
Regardez comment vous utilisez tabMatrice(pointDep, i) et normalement la lumiere devrait s'allumer
1
bob_6831 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   1
 
Oh j'ai compris mon erreur! Merci beaucoup. j'ai remplacer mon tab visite pour tabVisite(pointDep, i) et sa fonctionne.

Un gros merci a vous 2 !
0