Message erreur indice n'apparitent pas a la selection

Résolu/Fermé
bob_6831 Messages postés 3 Date d'inscription lundi 28 février 2022 Statut Membre Dernière intervention 1 mars 2022 - Modifié le 28 févr. 2022 à 23:28
bob_6831 Messages postés 3 Date d'inscription lundi 28 février 2022 Statut Membre Dernière intervention 1 mars 2022 - 1 mars 2022 à 14:48
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 15163 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 1 novembre 2024 345
28 févr. 2022 à 23:30
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 lundi 28 février 2022 Statut Membre Dernière intervention 1 mars 2022 1
1 mars 2022 à 02:13
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 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
1 mars 2022 à 07:28
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 lundi 28 février 2022 Statut Membre Dernière intervention 1 mars 2022 1
1 mars 2022 à 14:48
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